[PATCH] D114718: [analyzer] Implement a new checker for Strict Aliasing Rule.

Denys Petrov via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 9 05:00:17 PST 2021


ASDenysPetrov added inline comments.


================
Comment at: clang/lib/StaticAnalyzer/Checkers/StrictAliasingChecker.cpp:113
+  QualType getOriginalType(CheckerContext &C, SVal V, QualType T) const {
+    assert(V.getAs<Loc>() && "Location shall be a Loc.");
+    V = C.getState()->getSVal(V.castAs<Loc>(), T);
----------------
ASDenysPetrov wrote:
> NoQ wrote:
> > I suspect it might also be `UnknownVal` (?) It usually makes sense to protect against such scenarios with an early return.
> I'll try to add some tests to model this.
'ExprEngine::evalLocation' has an early check for //unknown//, so `Location` is never be //unknown//.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D114718/new/

https://reviews.llvm.org/D114718



More information about the cfe-commits mailing list