Commit Graph

134 Commits

Author SHA1 Message Date
Oliver Schneider dd5b0100f3 Merge remote-tracking branch 'origin/master' into memory 2017-08-28 16:13:09 +02:00
Oliver Schneider 02a0f0f814 Turn off validation for some compile-fail tests 2017-08-28 15:04:32 +02:00
Ralf Jung 907d2c7310 rustc #43457 got fixed, we can enable more tests 2017-08-27 18:18:32 +02:00
Ralf Jung 8539728607 memory: make sure we check non-NULL/undef even fore 0-sized accesses 2017-08-25 14:41:59 +02:00
Ralf Jung 2fccae8aac add another compile-fail test for validation 2017-08-18 11:30:18 +02:00
Ralf Jung 34685044f9 add a bunch of compile-fail tests for validation 2017-08-09 18:01:10 -07:00
Ralf Jung 668491a892 Work on making validation test pass again
Turns out that tracking write locks by their lifetime is not precise enough,
but for now, we don't have an alternative.  Also, we need to force_allocate
what we acquire or else the memory will not be in the right state.
2017-08-09 15:49:47 -07:00
Ralf Jung 11f0aedc3d add some tests making sure we get the alias checking right 2017-08-09 15:49:47 -07:00
Oliver Schneider 4ba2b82f31 Split the alloc id address space into functions and normal allocs
instead of interleaving them as before.
The next step is to also separate out static memory into its own
address space.
2017-08-08 17:09:25 +02:00
Ralf Jung 4957031e3c selectively disable validation in compile-fail where appropriate. cargo test now passes :) 2017-08-03 18:13:23 -07:00
Ralf Jung 58a17026c9 Let -Zmir-emit-validate also control whether miri even acts on the validation commands 2017-08-03 18:13:23 -07:00
Oliver Schneider adfea61665 Allow machines to create new memory kinds 2017-08-01 09:56:21 +02:00
Ralf Jung 14cb85809b always test alignment in memory.rs 2017-07-20 13:24:06 -07:00
Eduard-Mihai Burtescu e79bb42ab3 Merge pull request #262 from RalfJung/never
remove ad-hoc 'never' type check in read_lvalue
2017-07-20 15:13:21 +03:00
Ralf Jung 3b19c83c67 remove ad-hoc 'never' type check in read_lvalue 2017-07-19 20:32:51 -07:00
Ralf Jung 7648ccaae1 add test for misaligned pointer loads 2017-07-19 20:26:30 -07:00
Ralf Jung 72664e42aa No longer check aligment and non-NULLness on &
This breaks creating unaligned raw pointers via `&packed.field as *const _`, which needs to be legal.
Also it doesn't seem like LLVM still relies on this, see
* https://github.com/solson/miri/issues/244#issuecomment-315563640
* https://internals.rust-lang.org/t/rules-for-alignment-and-non-nullness-of-references/5430/16

We probably want to handle this invariant like the others that validation is concerned with, and only
check it on function boundaries for now.
2017-07-19 11:28:35 -07:00
Ralf Jung ff9192e346 remove reundant dangling checks in {r,d}eallocate 2017-07-18 13:50:54 -07:00
Oliver Schneider 2e562a4d64 Fix static mutation tests 2017-07-14 17:39:19 +02:00
Oliver Schneider 7701ff2f89 Remove duplicate test 2017-07-14 17:39:19 +02:00
Oliver Schneider 192da8819f Ensure that it is not possible to explicitly free stack memory 2017-07-14 17:36:06 +02:00
Ralf Jung 1fe310c8ba Memory::read_ptr has to check for relocations on the edges 2017-07-12 19:30:37 -07:00
Oliver Schneider 4a03e45169 Add tests for #113
resolves #113
2017-07-12 09:29:18 +02:00
Ralf Jung 9a9666e2a6 Add a test for using a too big alignment on reallocate 2017-07-11 10:28:32 -07:00
Ralf Jung ea730ab20f update tests for new allocator API 2017-07-10 16:15:58 -07:00
Ralf Jung 3c0a6d6922 simplify reallocate 2017-07-10 13:34:54 -07:00
Oliver Schneider b8bd42e8d4 Merge pull request #234 from RalfJung/reallocate
Make Reallocate & Deallocate less permissive
2017-07-05 19:54:54 +02:00
Oliver Schneider 10ec543b9e Merge pull request #235 from RalfJung/intrinsics
Implement some missing intrinsics
2017-07-04 08:38:22 +02:00
Ralf Jung 19d6ad74e5 add test for div-by-zero with the operator (rather than the intrinsic) 2017-07-03 20:59:47 -07:00
Ralf Jung 30f92f8a27 catch overflows that are hidden by first casting the RHS to u32 2017-07-03 20:50:19 -07:00
Ralf Jung ffd482e2f5 check the assumptions made by the unchecked_ and copy_nonoverlapping intrinsics 2017-07-03 20:37:38 -07:00
Ralf Jung 440c4778fa validate size and alignment on reallocate and deallocate 2017-07-03 16:47:58 -07:00
Ralf Jung bdcdb605a4 fix test on i686 2017-07-03 16:16:05 -07:00
Ralf Jung dc9f5a205f properly check for: double-free, use-after-reallocate 2017-07-03 16:12:11 -07:00
Ralf Jung 030166757c Fix transmute on ByValPair
Fixes #227
2017-07-03 13:58:50 -07:00
Oliver Schneider 42d3edada7 Merge pull request #220 from oli-obk/undo_single_field_opt
Remove the `field` field from `Lvalue::Local`
2017-06-28 10:15:36 +02:00
David Renshaw 54821102b4 update tests for new error message 2017-06-27 21:31:38 -04:00
Oliver Schneider 5dfaacf310 Simplify all the code 2017-06-27 13:36:41 +02:00
Ralf Jung 4e90e3bcf6 remove redundant test 2017-06-24 11:05:13 -07:00
Ralf Jung b1acc130bb check alignment of pointers on Ref 2017-06-24 11:05:13 -07:00
Ralf Jung f0c8df2291 handle ptr-int casts explicitly in cast.rs 2017-06-24 11:05:13 -07:00
Ralf Jung 7b7f690274 Make sure that casting a ptr-integer down to u8 makes it unusable 2017-06-24 11:05:13 -07:00
Oliver Schneider 4aca1d0e0b Make zst compile-fail tests more readable 2017-06-24 12:46:35 +02:00
Oliver Schneider 377fcce9b8 Ensure tests run with and without full MIR 2017-06-23 16:41:56 +02:00
Oliver Schneider 9be3e9185b Remove the zst allocation 2017-06-23 12:55:49 +02:00
Ralf Jung 12935b6514 add some compile-fail tests 2017-06-22 14:46:53 -07:00
Ralf Jung 14cb31fb88 permit bit-anding in pointer values below the alignment
This makes HashMap work!
2017-06-22 14:46:53 -07:00
Ralf Jung 2f61356858 permit offsetting a NULL-ptr by 0, to fix hashmap test 2017-06-22 13:41:13 -07:00
Ralf Jung 6eafb10b87 add test for function pointer offsets 2017-06-21 21:54:42 -07:00
Oliver Schneider a6cd7a2e08 Also move some compile-fail tests to fullmir-only 2017-06-21 15:07:40 +02:00