Commit Graph

882 Commits

Author SHA1 Message Date
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
Ralf Jung 14cb31fb88 permit bit-anding in pointer values below the alignment
This makes HashMap work!
2017-06-22 14:46:53 -07:00
Ralf Jung 269667e152 implement _nonzero intrinsics 2017-06-22 14:46:53 -07:00
Ralf Jung c1a6df941e permit all kinds of 0-offsets on ZSTs 2017-06-22 14:26:17 -07:00
Ralf Jung 2f61356858 permit offsetting a NULL-ptr by 0, to fix hashmap test 2017-06-22 13:41:13 -07:00
Ralf Jung 57391bab10 fix unused variable warning 2017-06-22 11:33:39 -07:00
Ralf Jung 6512fa7be8 use PrimVal::is_null 2017-06-22 11:33:31 -07:00
Ralf Jung 3637aa86c8 allow any offset on integer pointers 2017-06-22 11:28:00 -07:00