Commit Graph

749 Commits

Author SHA1 Message Date
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
Oliver Schneider
0e58c2a31b
document the fields of Allocation 2016-09-11 11:02:45 +02:00
Oliver Schneider
78bef956c9
don't load memory as mutable if not necessary 2016-09-11 11:02:45 +02:00
Scott Olson
5ac138c61f Update for changes in rustc. 2016-09-10 20:59:23 -06:00
Scott Olson
d06227d91c Merge pull request #52 from oli-obk/vtable
Vtable
2016-09-10 18:18:13 -06:00
Oliver Schneider
3562118948 use canonical formatting of pub (super) 2016-09-10 15:14:49 +02:00
Oliver Schneider
bcda724c43
closures don't work yet 2016-09-09 15:44:35 +02:00
Oliver Schneider
00c551c5f0
implement calling methods through trait objects 2016-09-09 12:51:14 +02:00
Scott Olson
248bfdea86 Merge pull request #50 from oli-obk/casts
implement more casts
2016-09-08 03:12:36 -06:00
Oliver Schneider
168d9e7745
don't use type_is_immediate for finding fat ptr casts 2016-09-08 10:26:33 +02:00
Oliver Schneider
d627cc749f
use cheap assertions instead of expensive debug assertions 2016-09-08 10:25:45 +02:00
Oliver Schneider
0f177fdecf
implement more casts 2016-09-07 18:34:59 +02:00
Scott Olson
f1dc961c5a Merge pull request #48 from oli-obk/fix_call_stack_positions
change the block and stmt position after a function call returns
2016-09-07 05:03:17 -06:00
Oliver Schneider
ad053d66fe
change the block and stmt position after a function call returns
previously we moved to the target block *before* calling a function, so when inspecting
the stack, it appeared as if we were in the first statement of the next block.
2016-09-07 12:48:29 +02:00
Scott Olson
be23dcdb8c Merge pull request #47 from oli-obk/unreachable_bugs
replace all `unreachable!` and `panic!` calls with `bug!`
2016-09-07 02:53:33 -06:00
Oliver Schneider
7be27ecb53
forgot to insert a {} into the format string 2016-09-07 10:43:13 +02:00
Oliver Schneider
ca703f619c
DRY 2016-09-07 10:30:49 +02:00
Oliver Schneider
f5a89d297c
rustc now can use integer literals in attributes 2016-09-07 10:27:57 +02:00