Commit Graph

226 Commits

Author SHA1 Message Date
Ralf Jung
7e9098ff69 treat ref-to-raw cast like a reborrow: do a special kind of retag 2018-12-12 11:11:20 +01:00
Ralf Jung
f044205b5f the test suite assumes a libstd with full MIR; run test suite on xargo-built foreign libstds 2018-12-10 10:04:55 +01:00
Ralf Jung
bbdc3380d5 fix tests 2018-12-07 10:15:25 +01:00
Ralf Jung
36a2b89522 remove a whole lot of unnecessary attributes 2018-12-02 11:26:09 +01:00
Ralf Jung
58309956c1 for now, we allow Undef in raw pointers as we do in integers 2018-11-27 14:26:23 +01:00
Ralf Jung
7d623f73cc do not use 'let _', it is strange 2018-11-26 15:31:53 +01:00
Ralf Jung
22f11b8eec make tests compatible with 2018 edition 2018-11-20 14:15:14 +01:00
Ralf Jung
827e5180f2 stacked borrows is broken without full MIR 2018-11-16 10:01:54 +01:00
Ralf Jung
c93f6d6bb0 Merge remote-tracking branch 'origin/master' into escape-to-raw 2018-11-16 09:41:47 +01:00
Ralf Jung
70738bf8cc where there is 2, there should be 1 2018-11-16 08:53:43 +01:00
Ralf Jung
ca7b088aba remove type system tests 2018-11-16 08:50:44 +01:00
Ralf Jung
ba8eb7608e add an interesting demo for &mut being unique 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
94e751267c add another mean test case 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
d694dc43f4 bump Rust version 2018-11-08 08:35:14 +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
efd2f0e0e4 move new test to correct dir 2018-11-03 12:33:14 +01:00
Ralf Jung
e68687b840 test that we check the layout constraints as early as we can 2018-11-03 12:25:57 +01:00
Ralf Jung
5f42aa61d5 illegal_write2 does not work with optimizations 2018-11-03 10:23:50 +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
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
40b7502613 Reject atomic arithmetic on non-integer types
Fixes #181
2018-10-31 11:04:35 +01:00
Ralf Jung
1fa0ff88c0 fix nits 2018-10-30 10:41:01 +01:00
Ralf Jung
356369dd08 test against passing invalid shared refs around 2018-10-23 16:01:22 +02:00
Ralf Jung
5388037f8a remove code duplication by letting reactivatable() compute what reactivate() has to do 2018-10-23 15:59:50 +02:00
Ralf Jung
fe83ef323c also run compile-fail tests with and without optimizations 2018-10-23 13:09:17 +02:00
Ralf Jung
cc328f6374 test passing invalid refs around 2018-10-23 11:20:04 +02:00
Ralf Jung
8cd73e534f use as(_mut)_ptr on slices to entirely escape them to raw 2018-10-22 18:51:06 +02:00
Ralf Jung
26bb4f79dc get rid of implicit Raw at bottom of stack; locals get a uniq at their bottom 2018-10-22 18:17:37 +02:00
Ralf Jung
fda03e9d7d some more compile-fail tests 2018-10-22 16:48:10 +02:00
Ralf Jung
dd1558f337 rustc update and be very selective about what we accept on a deref 2018-10-22 16:48:09 +02:00
Ralf Jung
957d18c343 Merge remote-tracking branch 'origin/master' into rustup 2018-10-22 08:41:01 +02:00
Ralf Jung
8134918390 don't use NOTE in tests 2018-10-19 12:29:49 +02:00
Ralf Jung
b9fe91e486 fix for ptr-to-raw casts properly erasing the tag 2018-10-18 12:04:41 +02:00
Ralf Jung
1907782b64 reenable some tests that work now, and organize them better with directories 2018-10-17 16:58:54 +02:00
Ralf Jung
c9cf0344ee enable validation for compile-fail tests, and add some new ones 2018-10-12 10:54:37 +02:00
Ralf Jung
a439262859
Merge branch 'master' into ptr-offset 2018-10-10 10:03:34 +02:00
Ralf Jung
233516b54d Merge remote-tracking branch 'origin/master' into rustup 2018-10-10 09:07:26 +02:00
Ralf Jung
0641d5b6d3 0-offset is also not always okay 2018-10-09 20:13:46 +02:00
Ralf Jung
edf28fa227 only allow offset-by-0 on integer pointers 2018-10-09 20:13:46 +02:00
Ralf Jung
cc275c63a9 fix for fn allocations now having an alignment (1) and a size (0) 2018-10-08 13:35:54 +02:00
Ralf Jung
59eb3dbdae use Box::into_raw 2018-10-07 10:35:34 +02:00
Ralf Jung
959693f1e5 ensure that we cannot use (wrapping_)offset to go from an int ptr to a real ptr 2018-10-06 18:32:39 +02:00
Ralf Jung
146f5d8d10 rustup; test for return type mismatch 2018-10-02 21:16:55 +02:00
Ralf Jung
e8f6973e2d fix test for latest rustc 2018-09-29 19:39:34 +02:00
Ralf Jung
18d7394071 more compile-fail ptr equality tests, to rule out any non-determinism; and fix ptr equality to fail all of them.
At least these are the cases I can think of right now.
2018-09-17 10:02:31 +02:00