about summary refs log tree commit diff
path: root/src/libstd/sys/unix/stack_overflow.rs
diff options
context:
space:
mode:
authorFelix S. Klock II <pnkfelix@pnkfx.org>2016-02-06 04:28:20 +0100
committerFelix S. Klock II <pnkfelix@pnkfx.org>2016-02-08 13:44:03 +0100
commit8801bdb6b09569b187bb4c83f6121533afc69820 (patch)
treee51e02455b7c296cb819aa2d00ca7a0b9671ce49 /src/libstd/sys/unix/stack_overflow.rs
parente06f6928cb840a018706cabf75ab2bf3807551b1 (diff)
downloadrust-8801bdb6b09569b187bb4c83f6121533afc69820.tar.gz
rust-8801bdb6b09569b187bb4c83f6121533afc69820.zip
Split dummy in region inference graph into distinct source and sink nodes.
Why do this: The RegionGraph representation previously conflated all
of the non-variable regions (i.e. the concrete regions such as
lifetime parameters to the current function) into a single dummy node.

A single dummy node leads DFS on a graph `'a -> '_#1 -> '_#0 -> 'b` to
claim that `'_#1` is reachable from `'_#0` (due to `'a` and `'b` being
conflated in the graph representation), which is incorrect (and can
lead to soundness bugs later on in compilation, see #30438).

Splitting the dummy node ensures that DFS will never introduce new
ancestor relationships between nodes for variable regions in the
graph.
Diffstat (limited to 'src/libstd/sys/unix/stack_overflow.rs')
0 files changed, 0 insertions, 0 deletions