Commit Graph

1351 Commits

Author SHA1 Message Date
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
Ralf Jung
d2cf3d76b9 update for 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
Ralf Jung
4165051073 refine comment explaining the order of checks on deallocate 2017-07-05 10:26:15 -07:00
Oliver Schneider
9a04be974c Merge pull request #232 from oli-obk/master
Only check pointers when dereferencing
2017-07-04 09:50: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
Oliver Schneider
fa05ca9f4a Merge pull request #233 from RalfJung/transmute
Fix transmute on ByValPair
2017-07-04 08:32:46 +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
Ralf Jung
030166757c Fix transmute on ByValPair
Fixes #227
2017-07-03 13:58:50 -07:00
Oliver Schneider
823b952ef2 Only check pointers when dereferencing
Before we also checked whether pointers had alloc_ids when we created rvalue references
2017-07-03 14:16:11 +02:00