[all-commits] [llvm/llvm-project] 7f66cc: [clang][dataflow] Merge `RecordValue`s with differ...

martinboehme via All-commits all-commits at lists.llvm.org
Mon Sep 11 23:43:43 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7f66cc7d7a7ff7229468840d2b72bb09acb286bf
      https://github.com/llvm/llvm-project/commit/7f66cc7d7a7ff7229468840d2b72bb09acb286bf
  Author: martinboehme <mboehme at google.com>
  Date:   2023-09-12 (Tue, 12 Sep 2023)

  Changed paths:
    M clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp
    M clang/unittests/Analysis/FlowSensitive/DataflowEnvironmentTest.cpp

  Log Message:
  -----------
  [clang][dataflow] Merge `RecordValue`s with different locations correctly. (#65319)

Now that prvalue expressions map directly to values (see
https://reviews.llvm.org/D158977), it's no longer guaranteed that
`RecordValue`s
associated with the same expression will always have the same storage
location.

In other words, D158977 invalidated the assertion in
`mergeDistinctValues()`.
The newly added test causes this assertion to fail without the other
changes in
the patch.

This patch fixes the issue. However, the real fix will be to eliminate
the
`StorageLocation` from `RecordValue` entirely.




More information about the All-commits mailing list