[PATCH] D26837: [analyzer] Litter the SVal/SymExpr/MemRegion class hierarchy with asserts.

Artem Dergachev via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 17 23:29:27 PST 2016


NoQ created this revision.
NoQ added reviewers: zaks.anna, dcoughlin, xazax.hun, a.sidorin.
NoQ added a subscriber: cfe-commits.

Put a lot of run-time checks on how our SVals are constructed, in order to maintain the existing status quo.
This should make understanding the hierarchy easier, and probably help us catch some bugs.

A couple of subtle bugs were exposed in the process, which were not addressed:

- SymbolConjured for invalidations caused by automatic destructors may possibly be reincarnated.
- GenericTaintChecker may produce symbolic expressions of void type.


https://reviews.llvm.org/D26837

Files:
  include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h
  include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h
  include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
  include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h
  include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h
  lib/StaticAnalyzer/Core/MemRegion.cpp
  lib/StaticAnalyzer/Core/SVals.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D26837.78474.patch
Type: text/x-patch
Size: 28832 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20161118/396efe5f/attachment-0001.bin>


More information about the cfe-commits mailing list