Commit Graph

1790 Commits

Author SHA1 Message Date
Oliver Schneider
6143ef03c3 Merge pull request #258 from oli-obk/upstream
Prep miri repository for rustc merger
2017-07-21 12:32:45 +02: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
308c7cadf1 Merge pull request #265 from oli-obk/optimize_prime
Also test optimized MIR
2017-07-20 22:08:02 +02:00
Oliver Schneider
f2d0101065
Also test optimized MIR 2017-07-20 20:25:43 +02:00
Oliver Schneider
9710ff481e Merge pull request #264 from oli-obk/paths
Reduce the usage of global paths
2017-07-20 20:00:19 +02:00
Oliver Schneider
9b526d1c85 Reduce the usage of global paths 2017-07-20 16:40:57 +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
Oliver Schneider
f02d9e63fd Merge pull request #259 from RalfJung/ref-validate
No longer check aligment and non-NULLness on `&`
2017-07-20 07:09:52 +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
ede055c2be fix checking alignment of pointer loads 2017-07-19 20:24:09 -07:00
Ralf Jung
f9818bf818 fix a warning 2017-07-19 13:31:21 -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
2424953055 Don't pretend that casts to bool are a thing 2017-07-19 11:35:06 -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
Oliver Schneider
27c64479cd Merge pull request #257 from oli-obk/cleanups
Export types and functions needed by priroda
2017-07-19 11:40:43 +02:00
Oliver Schneider
d9d792ba03 Export types and functions needed by priroda 2017-07-19 11:06:07 +02:00
Oliver Schneider
2d5c4196f1 Merge pull request #254 from RalfJung/dangling
Remove reundant dangling checks in {r,d}eallocate
2017-07-18 23:34:09 +02:00
Scott Olson
824438bda9 Merge pull request #255 from RalfJung/float
use libstd methods for floating-point <-> bytes conversion
2017-07-18 14:16:42 -07:00
Ralf Jung
9bccfd388c use libstd methods for floating-point <-> bytes conversion 2017-07-18 13:56:01 -07:00
Ralf Jung
ff9192e346 remove reundant dangling checks in {r,d}eallocate 2017-07-18 13:50:54 -07:00
Oliver Schneider
5328c5d1b0 Merge pull request #245 from oli-obk/funky_allocs
Ensure that it is not possible to explicitly free stack memory
2017-07-18 14:09:15 +02:00
Oliver Schneider
a29ba6a2b3 Merge pull request #249 from RalfJung/lvalue
lvalue: refactoring to permit applying a mir projection to a miri lvalue
2017-07-14 21:28:06 +02:00
Ralf Jung
2312ac8db6 lvalue: refactoring to permit applying a mir projection to a miri lvalue 2017-07-14 09:06:52 -07:00
Oliver Schneider
45ab975610 Add a comment explaining the static "local" during deallocate_local 2017-07-14 17:46:28 +02: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
eb01c3fdd2
Use enum instead of boolean 2017-07-14 17:39:19 +02:00
Oliver Schneider
70a914cd34
Clarify documentation 2017-07-14 17:36:06 +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
Oliver Schneider
555fc41d5e Merge pull request #243 from solson/magic_numbers
Get rid of magic numbers
2017-07-13 22:07:02 +02:00
Ralf Jung
da5538f0b2 use closures to ensure proper bracketing of unaligned accesses 2017-07-13 10:29:11 -07:00
Ralf Jung
d02e7f0da8 simplify 2017-07-13 09:10:50 -07:00
Ralf Jung
62334acd66 show alignedness of ByRefs; allow converting unaligned ByRef to ptr 2017-07-13 09:09:45 -07:00
Ralf Jung
6fb6a1c4d0 make all Value::into_* methods handle alignment the same way 2017-07-13 09:06:27 -07:00
Ralf Jung
6c9fdc7922 expand comment 2017-07-13 08:40:05 -07:00
Oliver Schneider
f8757aa092 Reuse the const_eval method for syscall name resolution 2017-07-13 16:49:55 +02:00
Oliver Schneider
f78d6a0d97
Don't use magic numbers for synconf names
instead read them from the `libc` crate if available.

fixes #216
2017-07-13 16:31:14 +02:00
Oliver Schneider
fdef27acf5
Copy path_to_def from clippy 2017-07-13 16:31:14 +02:00
Oliver Schneider
14c8fe7ace Merge pull request #248 from RalfJung/pointer-games
Memory::read_ptr has to check for relocations on the edges
2017-07-13 11:43:25 +02:00
Ralf Jung
81307d7299 fix "unaligned" transmute 2017-07-12 23:50:57 -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