[PATCH] D156856: [clang][dataflow] In `equivalentTo()`, ignore expression locations that are unlikely to matter.

Martin Böhme via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Aug 2 00:17:31 PDT 2023


mboehme created this revision.
Herald added subscribers: martong, xazax.hun.
Herald added a reviewer: NoQ.
Herald added a project: All.
mboehme requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.

The locations of some glvalue expressions are discarded or are merely used in
a `LValueToRValue` cast. However, the corresponding entries in `ExprToLoc` can
currently prevent convergence.

As the framework itself does not query these locations, and a particular
analysis is unlikely to query them either, we ignore them for the purpose of
determining whether a block has converged (in `Environment::equivalentTo()`).

This patch adds two tests that do not converge without the other changes in the
patch.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D156856

Files:
  clang/include/clang/Analysis/FlowSensitive/ControlFlowContext.h
  clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h
  clang/lib/Analysis/FlowSensitive/ControlFlowContext.cpp
  clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
  clang/unittests/Analysis/FlowSensitive/TransferTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D156856.546337.patch
Type: text/x-patch
Size: 9816 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20230802/d191d745/attachment.bin>


More information about the cfe-commits mailing list