Commit Graph

1242 Commits

Author SHA1 Message Date
Ralf Jung
19f8a9db7d Boxes can also use the fast path 2018-11-17 12:35:58 +01:00
Ralf Jung
c847071355 add comment about not using builtin_deref 2018-11-17 12:33:44 +01:00
Ralf Jung
56f1ef325a remove spurious assignments 2018-11-17 10:29:16 +01:00
Ralf Jung
662821f7f7 raw ptr deref no longer erases the tag 2018-11-17 10:11:21 +01:00
Ralf Jung
880229d4c3 escape-on-cast, now ptr-deref does not change the tag at all, ever 2018-11-17 10:05:40 +01:00
Ralf Jung
b7dbb5e2a7 also consider boxes like unique references 2018-11-17 10:05:40 +01:00
Ralf Jung
36b97cd76c Factor out common top-level code from escape-to-raw and retag 2018-11-16 11:24:01 +01:00
Ralf Jung
a1f895d6f2 retagging: descent into values, type-driven 2018-11-16 11:09:33 +01:00
Ralf Jung
60e26af323 add a sanity assertion 2018-11-16 08:40:00 +01:00
Ralf Jung
cf1746222e we no longer even try pushing to a frozen location 2018-11-15 21:22:05 +01:00
Ralf Jung
f521fd5e0f let's call this a redundant reborrow 2018-11-15 21:22:05 +01:00
Ralf Jung
c234009fdd generalize reborrow-to-raw exception to a general redundancy check 2018-11-15 09:35:40 +01:00
Ralf Jung
5a801c0dc1 adjust comment 2018-11-15 09:35:40 +01:00
Ralf Jung
a87e952102 Separate deref and access into different operations; add special exception for creating raw references 2018-11-15 09:35:40 +01:00
Ralf Jung
a94e197105 better test the special exception for reading through unique when things are shared 2018-11-15 09:35:40 +01:00
Ralf Jung
020313dd85 make freezing inherently part of the high-level reactivate/initiate operations 2018-11-15 09:35:40 +01:00
Ralf Jung
09919c2b59 Retag is the only operation that generates new tags 2018-11-15 09:35:40 +01:00
Ralf Jung
f5bd85d009 update for memory_deallocated moving to AllocExtra 2018-11-14 16:03:38 +01:00
Ralf Jung
e7aa5c68ff Update rustc for AllocationExtra trait
Based on https://github.com/solson/miri/pull/493 but there were more conflicts
than code so I opted not to cherry-pick.
2018-11-12 08:54:12 +01:00
Ralf Jung
f4e45ff2b7 sort the fields ourselves 2018-11-08 08:29:34 +01:00
Ralf Jung
00936316d1 treat shared and raw borrows alike 2018-11-08 08:29:34 +01:00
Ralf Jung
74635a57e2 re-do large parts of stacked borrows, now with proper support for partiall frozen data 2018-11-08 08:29:34 +01:00
Ralf Jung
2ff1f24f2b bump rust 2018-11-07 10:41:15 +01:00
Ralf Jung
f6d6470bc4 move to 2018 edition
I want NLL :D
2018-11-05 15:45:27 +01:00
Ralf Jung
9edac3189a rustup 2018-11-05 08:52:02 +01:00
Ralf Jung
a8af5ae139 fix for latest nightly 2018-11-04 10:30:15 +01:00
Ralf Jung
cb691b7ed9 comment on mut-to-shr transmutes 2018-11-03 11:42:38 +01:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
8ac5d988e2
typo
Co-Authored-By: RalfJung <post@ralfj.de>
2018-11-03 11:39:50 +01:00
Ralf Jung
8da2c9e34e fix adding default arguments 2018-11-03 11:03:53 +01:00
Ralf Jung
dc859f345d Merge remote-tracking branch 'origin/master' into rustup 2018-11-02 14:32:56 +01:00
Ralf Jung
a68779fd16 use crate:: import to make edition port easier later 2018-11-01 09:00:09 +01:00
Ralf Jung
81534496dc rename RefKind to UsageKind, because it not only used for references now 2018-11-01 08:58:03 +01:00
Ralf Jung
478f137c39 put all the logic into reactivatable() 2018-11-01 08:58:03 +01:00
Ralf Jung
85f821d7e9 unify checks on memory access and reborrowing, and update for Machine trait change 2018-11-01 08:58:03 +01:00
Ralf Jung
bba3c49e84 basic retagging (no fn_entry); this also makes us catch more bugs even with optimizations and we can finally stop mutating the state on deref 2018-11-01 08:58:03 +01:00
Ralf Jung
7ac0e79ad5 stub Retag hook; fix tests for removal of -Zmir-emit-validate 2018-11-01 08:58:03 +01:00
Ralf Jung
fba55ba2a9 make the -Z flags we use more consistent 2018-11-01 08:58:03 +01:00
Ralf Jung
27b1f47b0a use crate:: where appropriate 2018-11-01 08:57:22 +01:00
Ralf Jung
1fe925e758
Merge branch 'master' into atomic-arith 2018-10-31 11:19:26 +01:00
Ralf Jung
40b7502613 Reject atomic arithmetic on non-integer types
Fixes #181
2018-10-31 11:04:35 +01:00
Ralf Jung
016009a301 properly recognize log levels 2018-10-31 10:58:19 +01:00
Ralf Jung
5397f2e436 when using MIRI_LOG, avoid logging for what rustc does before miri gets started 2018-10-31 10:53:37 +01:00
Ralf Jung
7a6a68731e remove unused extern crate 2018-10-31 10:19:20 +01:00
Ralf Jung
cd256448d5 dumping locals with MIRI_BACKTRACE=1 is feasible now 2018-10-31 10:16:42 +01:00
Ralf Jung
eb153810e3 Use MIRI_ env vars to set RUST_ ones
This means we can do `MIRI_LOG=debug cargo run` and get something reasonable,
even if cargo has to build some dependencies first.
2018-10-31 10:09:55 +01:00
Ralf Jung
1fa0ff88c0 fix nits 2018-10-30 10:41:01 +01:00
Ralf Jung
559f63a2b6 Merge remote-tracking branch 'origin/master' into rustup 2018-10-30 08:40:30 +01:00
Ralf Jung
4ccdcdcace rustup 2018-10-29 09:15:15 +01:00
Ralf Jung
4a98f64142 Merge remote-tracking branch 'origin/master' into rustup 2018-10-26 15:06:21 +02:00
Ralf Jung
d890a70c39 update for is_null removal 2018-10-25 11:37:42 +02:00