Commit Graph

889 Commits

Author SHA1 Message Date
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
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
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
4ce8be9538 Produce ConstInt from a def_id for rustc 2017-07-12 10:38:54 +02:00
Ralf Jung
eafe659ee0 hooking mmap is no longer needed 2017-07-11 17:24:15 -07: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
Ralf Jung
1cbf5e8962 leave notes regarding possible alignment checks 2017-07-10 18:09:46 -07:00
Ralf Jung
d2cf3d76b9 update for allocator API 2017-07-10 16:15:58 -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
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
440c4778fa validate size and alignment on reallocate and deallocate 2017-07-03 16:47:58 -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
David Renshaw
e3fa4fb849 get cargo-miri to work 2017-06-29 13:06:36 -04:00
Oliver Schneider
8722ce8d4b Merge pull request #223 from oli-obk/lvalue_read
Reinstate `eval_and_read_lvalue` optimizations
2017-06-29 15:40:06 +02:00
David Renshaw
73ab5c77c2 normalize signature before passing to check_sig_compat 2017-06-29 07:58:22 -04:00
David Renshaw
32e7dcb6fb update for upstream changes to TyFnDef 2017-06-28 22:00:17 -04:00
Oliver Schneider
695f9723d2 Merge pull request #222 from oli-obk/const_eval_checks
Address comments to previous PR
2017-06-28 23:08:58 +02:00
Ralf Jung
51b43215a4 cast -> transmute 2017-06-28 11:37:15 -07:00
Oliver Schneider
917c89e697 Optimize lvalue reads from Value::ByVal and Value::ByValPair 2017-06-28 13:37:23 +02:00
Oliver Schneider
91409f1d76 Code nits 2017-06-28 13:10:50 +02:00
Oliver Schneider
c8079c652c
Address comments 2017-06-28 10:17:14 +02:00
Oliver Schneider
a724a39323 Reword comments 2017-06-28 09:46:41 +02:00
Oliver Schneider
5dfaacf310 Simplify all the code 2017-06-27 13:36:41 +02:00
Oliver Schneider
ab400f3eea Initial work towards checking const eval rules in miri 2017-06-26 17:58:47 +02:00
Ralf Jung
76a1d66e77 fix build after rebase 2017-06-24 11:05:53 -07:00
Ralf Jung
38d03392fa Clarify pattern matching 2017-06-24 11:05:13 -07:00
Ralf Jung
b1acc130bb check alignment of pointers on Ref 2017-06-24 11:05:13 -07:00
Ralf Jung
f0c8df2291 handle ptr-int casts explicitly in cast.rs 2017-06-24 11:05:13 -07:00
Oliver Schneider
eca9e3429a PrimVal used to allow comparing Undef 2017-06-23 16:12:03 +02:00
Oliver Schneider
5ee4fdcd15 fetch_tls_dtor "read" an Undef as nonzero 2017-06-23 13:31:00 +02:00
Oliver Schneider
c4fc6c677d Typo 2017-06-23 13:30:31 +02:00
Oliver Schneider
9be3e9185b Remove the zst allocation 2017-06-23 12:55:49 +02:00
Ralf Jung
d5c031640f use PrimVal::to_bool rather than bytes_to_bool 2017-06-22 20:20:26 -07:00