Commit Graph

866 Commits

Author SHA1 Message Date
Oliver Schneider
38748fa615
refactor away IntegerPtr 2016-09-22 15:47:16 +02:00
Oliver Schneider
875a4542f9
remove the ZST allocation and abort all zero byte writes/reads 2016-09-22 15:22:00 +02:00
Oliver Schneider
0690a26ddf
make Memory::dump use trace! instead of println! 2016-09-22 13:01:08 +02:00
Oliver Schneider
0f578f0d2e
fully implement size_of_val and add various tests that now succeed 2016-09-22 13:00:43 +02:00
Oliver Schneider
17e336c7d9
Merge branch 'master' of https://github.com/tsion/miri 2016-09-22 09:50:15 +02:00
Scott Olson
5b012edc7a Rename AbstractPtr to Ptr. 2016-09-21 23:23:50 -06:00
Scott Olson
840594115d Update for changes in rustc. 2016-09-21 23:16:31 -06:00
Scott Olson
89b9b3536e Remove more eval_operand_to_ptr. 2016-09-21 23:14:31 -06:00
Oliver Schneider
145cbf844c
enable A<Struct> -> A<Trait> downcasting 2016-09-21 18:00:04 +02:00
Scott Olson
d5e44712a4 Merge pull request #58 from oli-obk/master
only split the Fn* arguments in case of closures and function pointers
2016-09-21 08:16:08 -06:00
Oliver Schneider
21e924975d
only split the Fn* arguments in case of closures and function pointers 2016-09-21 15:57:13 +02:00
Scott Olson
07b8500505 Merge pull request #57 from oli-obk/master
fix enum down casting and backtrace panics
2016-09-21 07:29:08 -06:00
Oliver Schneider
75ccfd57a5
remove leftover debug print 2016-09-21 11:03:41 +02:00
Oliver Schneider
16f6ae3933
fix calling Fn closures as FnOnce closures 2016-09-20 18:31:55 +02:00
Oliver Schneider
4ab704c57d
implement more intrinsics 2016-09-20 16:05:30 +02:00
Oliver Schneider
8df6e7275a
export StackPopCleanup (needed by priroda) 2016-09-20 13:35:19 +02:00
Oliver Schneider
477d1c20f4
fix enum variant downcasting 2016-09-20 13:34:53 +02:00
Oliver Schneider
1e0b3b207d
prep for eddyb's find_method 2016-09-20 12:52:01 +02:00
Oliver Schneider
63cc7fc9e8
fix miri backtrace panic 2016-09-20 12:51:48 +02:00
Scott Olson
c1ae916a64 Remove a few instances of eval_operand_to_ptr. 2016-09-19 19:01:28 -06:00
Scott Olson
63100401db Simplify read_primval of {i,u}size. 2016-09-19 04:56:09 -06:00
Scott Olson
689bccbed1 Fix comment typo. 2016-09-19 04:49:21 -06:00
Scott Olson
6e5bdbe577 Add inital implementation of ByValPair.
There are still hacks left to clean up.
2016-09-19 04:39:01 -06:00
Scott Olson
678b9ca328 Print "(immutable)" when dumping allocations. 2016-09-19 04:10:51 -06:00
Scott Olson
c679c71def Freeze static memory of string constants. 2016-09-19 04:10:18 -06:00
Scott Olson
85cba42a7b There will never be a PrimVal for fat pointers.
Instead, there will be a `Value::ByValPair` variant for holding fat pointers
(among other things) modelled after `OperandValue::Pair` in rustc's trans.
2016-09-19 03:36:44 -06:00
Scott Olson
6c306f2254 Rename Value variants and simplify ByteStr consts.
The ByteStr change will make one less allocation for every byte string literal.
2016-09-19 03:35:38 -06:00
Scott Olson
20ced4a720 Replace const_to_ptr with const_to_value.
This reduces the number of allocations Miri makes drastically. The
`const_to_ptr` function was a lame hack that allocated for every since simple
constant, and all of those are avoided now, except for one extra allocation each
for string and bytestring literals which will be fixed in a followup commit.

There are a number of hacks such as `eval_operand_to_ptr` left over from this
commit, which will also be fixed in followup commits.
2016-09-19 02:19:34 -06:00
Scott Olson
814efe3b05 option_eq test passes now since casts are implemented. 2016-09-19 02:16:51 -06:00
Scott Olson
f3589d6835 Remove unused extern crate rustc_trans. 2016-09-17 14:50:56 -06:00
Scott Olson
8a2e2dd665 Merge pull request #56 from oli-obk/rustc_run_pass
various things that allow miri to crash less and execute more code
2016-09-16 02:36:09 -06:00
Oliver Schneider
31bbeb9eff
fix binding renaming in previous commit 2016-09-16 10:28:43 +02:00
Oliver Schneider
a670f43886
proper binding naming 2016-09-16 10:23:04 +02:00
Oliver Schneider
562c64d86a
add some sanity tests 2016-09-15 16:32:30 +02:00
Oliver Schneider
092f9d52d1
hackily fix calling function pointers through a Fn static dispatch 2016-09-15 16:14:53 +02:00
Oliver Schneider
0d2a403a51
run all tests found in folder given by MIRI_RUSTC_TEST env var 2016-09-15 16:13:54 +02:00
Oliver Schneider
eb594da409
forbid warnings only in the actual run-pass tests, not in the miri-pass tests 2016-09-15 16:12:36 +02:00
Oliver Schneider
00bd255fe0
add ctpop and ctlz intrinsic 2016-09-15 16:11:57 +02:00
Oliver Schneider
1b94e06a1a
ppaux::parameterized $sometimes panics, let's catch that. 2016-09-15 16:10:58 +02:00
Scott Olson
f731766805 Fix allocation of fn items by allowing ZST alignment to be 0. 2016-09-13 21:31:12 -06:00
Scott Olson
2e70fcdca8 Undo accidental test deletion in previous commit. 2016-09-13 20:17:52 -06:00
Scott Olson
366c793306 Fix tests broken by std::vec::SetLenOnDrop. 2016-09-13 20:14:07 -06:00
Scott Olson
fa2a7353b1 Merge pull request #54 from oli-obk/clippy
Clippy and `assume` intrinsic implementation
2016-09-13 19:21:20 -06:00
Oliver Schneider
23eb8a5cf2
error on failed assumptions 2016-09-13 13:08:57 +02:00
Oliver Schneider
c57233abca
needless clones 2016-09-13 13:03:54 +02:00
Oliver Schneider
903bb97c17
needless references 2016-09-13 13:03:42 +02:00
Scott Olson
4051b0e36a Merge pull request #53 from oli-obk/dont_touch_my_precious_constants
Detect modifications of immutable memory
2016-09-11 03:17:58 -06:00
Scott Olson
db7d842fb3 Fix comment wording. 2016-09-11 03:06:44 -06:00
Oliver Schneider
3c5f595d45
prevent the modification of vtables 2016-09-11 11:02:45 +02:00
Oliver Schneider
5c47e3dbd8
only allow the modification of static mut or statics with interior mutability 2016-09-11 11:02:45 +02:00