Commit Graph

1371 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
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
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