Commit Graph

1269 Commits

Author SHA1 Message Date
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 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
Ralf Jung 454fc854ab Rename value accessors to "into_*" so the three of them are better aligned 2017-07-12 17:52:57 -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 fda18f64cd Merge pull request #241 from solson/rustc_integration
Produce `ConstInt` from a `def_id` for rustc
2017-07-12 11:02:03 +02:00
Oliver Schneider e362c30ef8 Merge pull request #242 from solson/various
Add tests for #113
2017-07-12 10:40:02 +02:00
Oliver Schneider 4ce8be9538 Produce ConstInt from a def_id for rustc 2017-07-12 10:38:54 +02:00
Oliver Schneider 4a03e45169 Add tests for #113
resolves #113
2017-07-12 09:29:18 +02:00
Oliver Schneider 28969f47aa Merge pull request #238 from RalfJung/tests
Add little script to build libstd
2017-07-12 09:08:07 +02:00
Eduard-Mihai Burtescu ea2b192e15 Merge pull request #239 from RalfJung/mmap
hooking mmap is no longer needed
2017-07-12 09:03:22 +03:00
Ralf Jung eafe659ee0 hooking mmap is no longer needed 2017-07-11 17:24:15 -07:00
Ralf Jung 3e7f69aae2 add little script to build libstd
That's easier to use than having to `cd xargo`
2017-07-11 10:28:32 -07:00
Ralf Jung 9a9666e2a6 Add a test for using a too big alignment on reallocate 2017-07-11 10:28:32 -07:00
Oliver Schneider 40755ecfb7 Merge pull request #236 from oli-obk/pointers
Use a wrapper type to differentiate between `PrimVal` and pointers
2017-07-11 15:03:14 +02:00
Oliver Schneider eba199a437 Document the reason for Pointer's existence 2017-07-11 12:50:03 +02:00
Oliver Schneider 0dd6ef8301 Simplify with_extra 2017-07-11 12:39:12 +02:00
Oliver Schneider d0d1d2d5e8 Remove *offset* methods from PrimVal onto Pointer 2017-07-11 12:28:11 +02:00
Oliver Schneider 03f0a88002 Use a wrapper type to differentiate between PrimVal and pointers 2017-07-11 12:28:11 +02:00
Oliver Schneider a8b957a0f8 Add a dedicated write_null method 2017-07-11 10:32:01 +02:00
Oliver Schneider 2d52054fb2 Rename Pointer to MemoryPointer 2017-07-11 10:32:01 +02:00
Oliver Schneider 1511023456 Merge pull request #237 from RalfJung/reallocate
Update for allcator API, simplify reallocate
2017-07-11 09:39:52 +02:00
Ralf Jung 1cbf5e8962 leave notes regarding possible alignment checks 2017-07-10 18:09:46 -07:00
Ralf Jung ea730ab20f update tests for new allocator API 2017-07-10 16:15:58 -07:00