Commit Graph

344 Commits

Author SHA1 Message Date
Oliver Schneider 726b027ba3 Merge pull request #280 from solson/archeology
Produce backtraces for miri internals
2017-08-03 23:02:29 +02:00
Ralf Jung 2cf394955b actually, we can use a plain constant 2017-08-03 12:58:34 -07:00
Ralf Jung 0f43321178 no need to do run-time formatting 2017-08-03 12:39:55 -07:00
Ralf Jung de1376f923 Add a build script to inform the binary about its profile, and use that in the test suite 2017-08-03 11:38:00 -07:00
Ralf Jung c533cf8496 fix size_of_val on unsized tuples 2017-08-02 15:29:13 -07:00
Oliver Schneider 40677a5c47 Choose release miri for release tests 2017-08-02 18:28:12 +02:00
Oliver Schneider f8c61da070 Add a test for untagged unions 2017-08-02 12:56:07 +02:00
Oliver Schneider adfea61665 Allow machines to create new memory kinds 2017-08-01 09:56:21 +02:00
Oliver Schneider 11e30a65e6 Split up miri into the librustc_mir and bin parts 2017-08-01 09:56:21 +02:00
Ralf Jung 4672cb7bde make force_allocation handle packed ByValPair 2017-07-26 23:45:22 -07:00
Oliver Schneider f906c5458c Merge pull request #272 from oli-obk/mir-validate
Mir validate
2017-07-26 23:37:52 +02:00
Ralf Jung 744780e794 more hacks to make test cases pass 2017-07-25 17:31:40 -07:00
Ralf Jung e5cc8aaf5b Test that &* of a dangling (and even unaligned) ptr is okay 2017-07-25 17:02:57 -07:00
Ralf Jung f960f4c537 fix casting integers to pointers 2017-07-21 20:02:48 -07:00
Oliver Schneider 4cfa7c5d12 Prep miri repository for rustc merger 2017-07-21 11:30:56 +02:00
Oliver Schneider b4e300d577 Merge pull request #266 from RalfJung/align
Always test alignment in memory.rs
2017-07-21 09:46:50 +02:00
Ralf Jung 14cb85809b always test alignment in memory.rs 2017-07-20 13:24:06 -07:00
Oliver Schneider f2d0101065 Also test optimized MIR 2017-07-20 20:25:43 +02:00
Oliver Schneider f822ad5c63 Merge pull request #260 from RalfJung/tests
Split up test suite
2017-07-20 16:07:08 +02: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
Oliver Schneider 101e5a8ba0 Move rustc tests from tests to a binary, since they are only run manually anyway 2017-07-20 13:11:40 +02: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 e38ee0a30a split up the test suite 2017-07-19 12:52:20 -07:00
Ralf Jung e4ffab1754 enable test code that passes just fine 2017-07-19 11:38:15 -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
Oliver Schneider 56d4de303f Merge pull request #247 from RalfJung/packed
Re-do packed memory accesses
2017-07-14 08:30:30 +02:00
Ralf Jung 0fbbcae92d packed structs: test unsize coercions 2017-07-13 14:18:26 -07:00
Ralf Jung 287b6be5ca track alignment also for ByRef values 2017-07-12 21:06:57 -07:00
Ralf Jung 1fe310c8ba Memory::read_ptr has to check for relocations on the edges 2017-07-12 19:30:37 -07:00
Ralf Jung c149c3fc6a Re-do packed memory accesses
We now track in the lvalue whether what we computed is expected to be aligend or not, and then set some state in the memory system accordingly to make it (not) do alignment checks
2017-07-12 17:46:56 -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 e60f11f52c update for latest nightly 2017-07-10 13:57:18 -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 f118ff43e7 implement the unchecked_ intrinsics; add all the doctests from one of the integer modules 2017-07-03 20:37:33 -07:00
Ralf Jung 79ab4f0e8c make u128 test work (commenting out the use of checked_shl) 2017-07-03 20:36:04 -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