about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-05-20 07:38:45 +0000
committerbors <bors@rust-lang.org>2015-05-20 07:38:45 +0000
commit6d718f236dfdb086099d6147895416422aae4283 (patch)
tree0f661b59a81ed0518ca7485b149e33469a73c421 /src/rustllvm/RustWrapper.cpp
parent720735b9430f7ff61761f54587b82dab45317938 (diff)
parentb802b187303ff3499849c5763d3dcd39f1b6c3cf (diff)
downloadrust-6d718f236dfdb086099d6147895416422aae4283.tar.gz
rust-6d718f236dfdb086099d6147895416422aae4283.zip
Auto merge of #25595 - dotdash:issue25549, r=eddyb
When taking the address of an unsized field we generate a rvalue datum
for the field and then convert it to an lvalue datum. At that point,
cleanup is scheduled for the field, leading to multiple drop calls.

The problem is that we generate an rvalue datum for the field, since the
pointer does not own the data and there's already cleanup scheduled
elsewhere by the true owner. Instead, an lvalue datum must be created.

Thanks to @eddyb for identifying the underlying cause and suggesting the
correct fix.

Fixes #25549.
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions