about summary refs log tree commit diff
path: root/compiler/rustc_parse_format/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-08-22 12:52:35 +0000
committerbors <bors@rust-lang.org>2024-08-22 12:52:35 +0000
commit8b10bda1e497df32cffaec1cdbc1e818eb70ba3b (patch)
treef29c8e8dc3c8839bc2248e6cd399e4832e8a1fba /compiler/rustc_parse_format/src
parent695a4f918a18a73f5f2f100a9448318891f6f648 (diff)
parentb5d77d849e01bd48fb7d7da6d6f4a613af00e750 (diff)
downloadrust-8b10bda1e497df32cffaec1cdbc1e818eb70ba3b.tar.gz
rust-8b10bda1e497df32cffaec1cdbc1e818eb70ba3b.zip
Auto merge of #3833 - JoJoDeveloping:tb-fix-stack-overflow, r=RalfJung
Make Tree Borrows Provenance GC no longer produce stack overflows

Most functions operating on Tree Borrows' trees are carefully written to not cause stack overflows due to too much recursion. The one exception is [`Tree::keep_only_needed`](https://github.com/rust-lang/miri/blob/94f5588fafcc7d59fce60ca8f7af0208e6f618d4/src/borrow_tracker/tree_borrows/tree.rs#L724), which just uses regular recursion.
This function is part of the provenance GC, so it is called regularly for every allocation in the program.

Tests show that this is a problem in practice. For example, the test `fill::horizontal_line` in crate `tiny-skia` (version 0.11.4) is such a test.

This PR changes this, this test no now longer crashes. Instead, it succeeds (after a _long_ time).
Diffstat (limited to 'compiler/rustc_parse_format/src')
0 files changed, 0 insertions, 0 deletions