diff options
author | martinboehme <mboehme@google.com> | 2024-01-12 09:20:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-12 09:20:58 +0100 |
commit | 537bbb4688b021c7eb7045ffd0d5f63087af83c3 (patch) | |
tree | 4f4625c6ef5bdf4a628b8410b0737d7f5c6ba0b8 /clang/unittests/Format/FormatTestJava.cpp | |
parent | dabc9018ee856dee672fb1035fd3eb1bb39bd7a6 (diff) | |
download | llvm-537bbb4688b021c7eb7045ffd0d5f63087af83c3.zip llvm-537bbb4688b021c7eb7045ffd0d5f63087af83c3.tar.gz llvm-537bbb4688b021c7eb7045ffd0d5f63087af83c3.tar.bz2 |
[clang][dataflow] Process terminator condition within `transferCFGBlock()`. (#77750)
In particular, it's important that we create the "fallback" atomic at
this point
(which we produce if the transfer function didn't produce a value for
the
expression) so that it is placed in the correct environment.
Previously, we processed the terminator condition in the
`TerminatorVisitor`,
which put the fallback atomic in a copy of the environment that is
produced as
input for the _successor_ block, rather than the environment for the
block
containing the expression for which we produce the fallback atomic.
As a result, we produce different fallback atomics every time we process
the
successor block, and hence we don't have a consistent representation of
the
terminator condition in the flow condition.
This patch includes a test (authored by ymand@) that fails without the
fix.
Diffstat (limited to 'clang/unittests/Format/FormatTestJava.cpp')
0 files changed, 0 insertions, 0 deletions