21 Commits

Author SHA1 Message Date
kennytm
5efa045bbe Rollup merge of #46852 - scottmcm:asm-placecontext, r=arielb1
Split PlaceContext::Store into Store & AsmOutput

Outputs in InlineAsm can be read-write, so splitting it out is useful for things like Store-Store folding, as that's unsound for a Store-AsmOutput.

This PR is intended to make no changes, just be the mechanical split of the enum.  Future changes can use the split, like a MIR pass I'm working on and perhaps two-phase borrows (see this FIXME: https://github.com/rust-lang/rust/pull/46852/files#diff-74dcd7740ab2104cd2b9a3b68dd4f208R543)
2017-12-20 21:22:03 +08:00
Scott McMurray
fb245e0540 Split PlaceContext::Store into Store & AsmOutput
Outputs in InlineAsm can be read-write, so splitting it out is useful for things like Store-Store folding, as it cannot be done for a Store-AsmOutput.

This PR is intended to make no changes, just be the mechanical split of the enum.  Future changes can use the split, like a MIR pass I'm working on and perhaps two-phase borrows.
2017-12-19 17:05:14 -05:00
Esteban Küber
e1dc7ac33c Tweak "unecessary unsafe block" error spans 2017-12-18 11:11:35 -08:00
Eduard-Mihai Burtescu
473f044225 MIR: s/lv(al(ue)?)?/place in function/variable/module names. 2017-12-01 18:48:57 +02:00
Eduard-Mihai Burtescu
511743c438 MIR: s/Lvalue/Place in type names. 2017-12-01 18:47:36 +02:00
Michael Woerister
687e099b44 incr.comp.: Make a bunch of query results encodable. 2017-11-28 13:03:39 +01:00
Michael Woerister
8fbc91cfe1 incr.comp.: Make MIR encoding fit for incr.comp. caching. 2017-11-28 12:44:45 +01:00
Ariel Ben-Yehuda
f3b2d7f3a7 improve error messages 2017-11-26 19:01:19 +02:00
Ariel Ben-Yehuda
617b413e18 limit packed copy-out to non-generic Copy structs 2017-11-26 16:12:43 +02:00
Ariel Ben-Yehuda
1a2d443f55 make accessing packed fields a future-compat warning 2017-11-26 16:12:42 +02:00
Ariel Ben-Yehuda
06eb5a6645 fix codegen of drops of fields of packed structs 2017-11-26 16:12:42 +02:00
Ariel Ben-Yehuda
bdb72edb5c make accesses to fields of packed structs unsafe
To handle packed structs with destructors (which you'll think are a rare
case, but the `#[repr(packed)] struct Packed<T>(T);` pattern is
ever-popular, which requires handling packed structs with destructors to
avoid monomorphization-time errors), drops of subfields of packed
structs should drop a local move of the field instead of the original
one.

cc #27060 - this should deal with that issue after codegen of drop glue
is updated.

The new errors need to be changed to future-compatibility warnings, but
I'll rather do a crater run first with them as errors to assess the
impact.
2017-11-26 16:12:42 +02:00
bors
edd9dbcdbb Auto merge of #45985 - arielb1:unsafe-dedup, r=eddyb
check_unsafety: fix unused unsafe block duplication

The duplicate error message is later removed by error message
deduplication, but it still appears on beta and is still a bug.

r? @eddyb
2017-11-16 08:31:59 +00:00
Ariel Ben-Yehuda
c0f7cce96e check_unsafety: fix unused unsafe block duplication
The duplicate error message is later removed by error message
deduplication, but it still appears on beta and is still a bug
2017-11-14 16:38:34 +02:00
Shotaro Yamada
ec2ff8f734 Add TyCtxt::is_closure 2017-11-14 17:43:43 +09:00
Basile Desloges
0bb77bdb54 mir-borrowck: Move is_static_mut() to ty/utils.rs 2017-11-13 21:53:09 +01:00
Ariel Ben-Yehuda
12aedc833c collect unused unsafe code
FIXME: de-uglify
2017-11-06 23:41:18 +02:00
Ariel Ben-Yehuda
cd279a5b98 run unsafety checking before dead block collection
Fixes #45087.
2017-11-06 23:41:18 +02:00
Ariel Ben-Yehuda
a6b1a81750 fix unsafety checking for generators
Fixes #45729
2017-11-06 16:36:49 +02:00
Mikhail Modin
2d71c5f10c add TerminatorKind::FalseEdges and use it in matches 2017-11-02 09:43:36 +03:00
Ariel Ben-Yehuda
c72a979979 move unsafety checking to MIR
No functional changes intended.
2017-09-24 12:46:00 +03:00