about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorAaron Hill <aa1ronham@gmail.com>2020-01-16 18:53:51 -0500
committerAaron Hill <aa1ronham@gmail.com>2020-01-16 18:53:51 -0500
commit171fe82efc2ab420e3fe2e9ad5a44db093a751f1 (patch)
treeb3c6d68a30ee2409ef2d88ead5ec9ca78e20a660 /src/rustllvm/RustWrapper.cpp
parentd088d8a2c1bd706c458d36eac941949169514d86 (diff)
downloadrust-171fe82efc2ab420e3fe2e9ad5a44db093a751f1.tar.gz
rust-171fe82efc2ab420e3fe2e9ad5a44db093a751f1.zip
Filter and test predicates using `normalize_and_test_predicates` for const-prop
Fixes #68264

Previously, I attempted to use
`substitute_normalize_and_test_predicates` to detect unsatisfiable
bounds. Unfortunately, since const-prop runs in a generic environment
(we don't have any of the function's generic parameters substituted),
this could lead to cycle errors when attempting to normalize predicates.

This check is replaced with a more precise check. We now only call
`normalize_and_test_predicates` on predicates that have the possibility
of being proved unsatisfiable - that is, predicates that don't depend
on anything local to the function (e.g. generic parameters). This
ensures that we don't hit cycle errors when we normalize said
predicates, while still ensuring that we detect unsatisfiable
predicates.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions