Commit Graph

577 Commits

Author SHA1 Message Date
Oliver Schneider
d2d73a908d
reintroduce Lvalue and LvalueExtra 2016-09-27 10:14:53 +02:00
Oliver Schneider
e28f873756
actually error on failing miri-pass tests
+ remove a test that never succeeded
2016-09-26 17:49:53 +02:00
Oliver Schneider
5d1080d0ca
refactor Lvalue and PrimVal::{SlicePtr, VtablePtr} into Value::ByValPair 2016-09-26 17:49:30 +02:00
Oliver Schneider
fe614e342d
remove move_value, which is a dupe of write_value 2016-09-26 11:40:09 +02:00
Oliver Schneider
fcbaf990f2
check Pointer::to_int for non-integer pointers 2016-09-26 11:37:23 +02:00
Oliver Schneider
c874290054
Merge remote-tracking branch 'origin/master' into dst 2016-09-26 11:27:59 +02:00
Scott Olson
1e3659eabb Merge pull request #59 from oli-obk/master
enable A<Struct> -> A<Trait> downcasting where `A<Trait>` is a fat pointer
2016-09-23 18:07:02 -06:00
Oliver Schneider
b3190359df
refactor away get_fat_ptr 2016-09-23 15:48:23 +02:00
Oliver Schneider
d743c0784e
clean up get_fat_ptr usage in Unsize 2016-09-23 15:23:01 +02:00
Oliver Schneider
7714cccf26
implement "type_name" intrinsic 2016-09-23 10:38:30 +02:00
Oliver Schneider
2282289ad5
refactor away intermediate allocations, stage1 2016-09-23 10:27:14 +02:00
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