about summary refs log tree commit diff
path: root/src/test/incremental/thinlto
diff options
context:
space:
mode:
authorFelix S. Klock II <pnkfelix@pnkfx.org>2018-09-18 01:47:53 +0200
committerFelix S. Klock II <pnkfelix@pnkfx.org>2018-09-18 02:06:45 +0200
commit1f0fbddfff60f7f5d35b9008ab3f0ffb8133bb52 (patch)
tree7fa67ff0f2a42bfb71d13c3e3977aa6f8aa93ddd /src/test/incremental/thinlto
parent2224a42c353636db6ee53cc3f9b1a968e9d9c1f6 (diff)
downloadrust-1f0fbddfff60f7f5d35b9008ab3f0ffb8133bb52.tar.gz
rust-1f0fbddfff60f7f5d35b9008ab3f0ffb8133bb52.zip
Fine tune dianostics for when a borrow conflicts with a destructor that needs exclusive access.
In particular:

 1. Extend `WriteKind::StorageDeadOrDrop` with state to track whether
    we are running a destructor or just freeing backing storage.  (As
    part of this, when we drop a Box<..<Box<T>..> where `T` does not
    need drop, we now signal that the drop of `T` is a kind of storage
    dead rather than a drop.)

 2. When reporting that a value does not live long enough, check if
    we're doing an "interesting" drop, i.e. we aren't just trivally
    freeing the borrowed state, but rather a user-defined dtor will
    run and potentially require exclusive aces to the borrowed state.

 3. Added a new diagnosic to describe the scenario here.
Diffstat (limited to 'src/test/incremental/thinlto')
0 files changed, 0 insertions, 0 deletions