Commit Graph

1516 Commits

Author SHA1 Message Date
Oliver Schneider
da6f136997 I say we take off and nuke the lifetimes from orbit 2017-03-14 10:49:22 +01:00
David Renshaw
4cae50cccb add write_bytes() test for a larger-than-u128 struct 2017-03-13 20:33:23 -04:00
David Renshaw
aa2f9988a4 add write-bytes test 2017-03-13 19:49:37 -04:00
Oliver Schneider
8405770b51 Rustup to rustc 1.17.0-nightly (be760566c 2017-02-28) 2017-03-02 13:11:33 +01:00
Oliver Schneider
8878a4030a rustup to rustc 1.17.0-nightly (60a0edc6c 2017-02-26) 2017-02-28 12:35:00 +01:00
Oliver Schneider
de42764b52
drop zst fields of null pointer optimized structs and enums
fixes #25
2017-02-24 11:04:13 +01:00
Oliver Schneider
31c81ac322 Merge move_fn_closure run-passtest into closure-drop 2017-02-24 10:42:11 +01:00
Oliver Schneider
38d16ccacc
add test with an Rc cycle to create a memleak 2017-02-24 10:41:15 +01:00
Oliver Schneider
5829483f4d
add a test for the memory leak error 2017-02-24 10:41:15 +01:00
Oliver Schneider
c4c9ff8d3f
remove memory leak from run-pass test 2017-02-24 10:41:15 +01:00
Oliver Schneider
25c3a4fb00
drop all temporary closure allocations 2017-02-24 10:41:15 +01:00
Oliver Schneider
4730cdf825
fix a bug in drop code of structs with unsized fields 2017-02-14 14:26:47 +01:00
Scott Olson
d8e5500c6d Add test for closure drop. 2017-02-10 15:05:29 -08:00
Scott Olson
e0d6359297 Add test for #133. 2017-02-10 08:00:28 -08:00
Scott Olson
5a2cdc2689 Implement the fast float math intrinsics. 2017-02-10 05:58:34 -08:00
Scott Olson
e1725a8101 Add test for assoc consts. 2017-02-10 05:39:30 -08:00
Oliver Schneider
6d97d02c52
autogenerate markdown for rustc test suite result 2017-02-10 09:34:09 +01:00
Oliver Schneider
d92085fd0e properly extract the inner type in a drop impl 2017-02-09 19:08:08 +01:00
Oliver Schneider
8c2832f419 add the full test from rust 2017-02-09 18:03:21 +01:00
Scott Olson
3b95bf93b1 Merge pull request #132 from oli-obk/master
we cannot panic, thus `panicking` always returns false
2017-02-09 15:37:23 +01:00
Scott Olson
14d7501ca4 Merge pull request #128 from oli-obk/align_thyself
fix size of dst in size_of_val intrinsic
2017-02-09 15:35:15 +01:00
Oliver Schneider
f6fbd060ad no mir for mutex::lock in windows-gnu 2017-02-09 15:21:37 +01:00
Oliver Schneider
0f183dc866 we cannot panic, thus panicking always returns false 2017-02-09 15:07:50 +01:00
Oliver Schneider
d23c3ae516 fix a failing test 2017-02-09 13:00:38 +01:00
Oliver Schneider
0d3cee2db3 fix size of dst in size_of_val intrinsic 2017-02-09 11:15:56 +01:00
Scott Olson
bc5d9b6f8d Merge pull request #127 from oli-obk/print_panic
ignore `print!`, turn `panic!` into a EvalError
2017-02-09 11:14:47 +01:00
Oliver Schneider
fb2d393427 update tests 2017-02-09 10:59:42 +01:00
Scott Olson
2048679eed Merge pull request #126 from oli-obk/1>-1
1 > -1
2017-02-09 09:57:22 +01:00
Oliver Schneider
6aed897c70
1 > -1 2017-02-09 09:43:45 +01:00
Oliver Schneider
1844381ad0 compute the offset of dst fields by checking the vtable 2017-02-09 08:38:01 +01:00
Oliver Schneider
4beb774caa don't mark the zst allocation as static 2017-02-08 17:24:20 +01:00
Oliver Schneider
e23fc79d25 silence some style warning 2017-02-08 15:38:48 +01:00
Oliver Schneider
3db6ec3f11 prevent more deallocations of statics 2017-02-08 15:32:49 +01:00
Oliver Schneider
aaba692eff add regression test for #120 2017-02-07 20:38:23 +01:00
Oliver Schneider
98cda6cb07 freeze -> static 2017-02-07 20:28:54 +01:00
Oliver Schneider
01ac19d358 fix static mut accidental dealloc or freeze 2017-02-07 19:20:16 +01:00
Oliver Schneider
3c560f5941 fix some leftover u128 errors 2017-02-07 17:52:32 +01:00
Oliver Schneider
18f4ca3c6b fix drop impls for clike enums 2017-02-07 17:41:30 +01:00
Oliver Schneider
45df853da7 cleanup buggy closure dispatch code 2017-02-07 14:22:20 +01:00
Oliver Schneider
5118aadee2 reenable rustc run pass tests 2017-02-07 12:32:39 +01:00
Oliver Schneider
0377990dc6
fix turning function items into closure trait objects 2017-02-07 11:04:46 +01:00
Oliver Schneider
a3d83e5c8f can't call assert_eq on packed struct fields since that takes references 2017-01-31 10:51:52 +01:00
Oliver Schneider
148c6de507 fix some unaligned reads 2017-01-31 10:36:46 +01:00
Oliver Schneider
5e34740ab6 implement packed struct field access 2017-01-30 09:44:52 +01:00
Oliver Schneider
ce95ae5927 correctly implement pointers to enum variant constructors 2017-01-28 15:46:46 +01:00
Oliver Schneider
b6e79dbbf5 fix some ICEs 2017-01-28 15:28:24 +01:00
Oliver Schneider
e22cceaceb
allow using tuple variant names as function handles in presence of NonZero optimizations 2017-01-23 12:56:40 +01:00
Oliver Schneider
04eadedb28
allow using tuple variant names as function handles 2017-01-23 12:56:40 +01:00
Oliver Schneider
8084d60f54
add test for unions and remove needles forced alloc 2017-01-12 12:43:37 +01:00
Oliver Schneider
548a6baec0
also test transmutes to empty enums 2017-01-12 11:23:44 +01:00
Oliver Schneider
b5f824fd9c
fix ICE when transmuting inhabited types to uninhabited 2017-01-12 09:59:00 +01:00
Oliver Schneider
753dbcf158
add a test for dereferencing a pointer to a ! 2017-01-12 09:41:36 +01:00
Oliver Schneider
7c486416cb
allow the use of tuple struct constructors as functions 2017-01-12 08:52:22 +01:00
Oliver Schneider
ccfcc12a58
aux tests only run if the host is set 2017-01-12 08:45:09 +01:00
Oliver Schneider
ae7d69a5bd
msvc has different internals for mutexes and thus fails on a different function 2017-01-12 08:41:57 +01:00
Oliver Schneider
2f51310a80
clamp down on hacks in compiletest 2017-01-12 08:41:22 +01:00
Oliver Schneider
1f40819315
try to pin down the travis failure 2017-01-12 08:41:12 +01:00
Oliver Schneider
5d7b92a6e3
fix travis 2017-01-12 08:40:53 +01:00
Oliver Schneider
32cd8efb97
re-enable auxiliary tests for the host only 2017-01-12 08:40:16 +01:00
Scott Olson
d6e35fe46f Add test for #95. 2016-12-21 17:26:52 -08:00
Scott Olson
9e244251a0 Enable an old test that works now! 2016-12-17 01:58:03 -08:00
Scott Olson
0cc4535a58 This test appears to work on 32-bit now. 2016-12-17 01:52:26 -08:00
Scott Olson
142d971c82 Add regression test for write_primval bug. 2016-12-17 01:34:19 -08:00
Scott Olson
96b83ebb7c Improve compiletest target detection. 2016-12-17 00:54:37 -08:00
Scott Olson
42239e69bf Make layout SizeOverflow test trigger on i686. 2016-12-16 23:57:46 -08:00
Scott Olson
0591683b73 Stop before trans so I can test non-x86_64 targets.
I had problems when it tried to link outputs for targets other than my
host.

This re-breaks tests with auxiliary builds. I'm not sure what to do
about those right now.
2016-12-16 23:47:43 -08:00
Scott Olson
33223fdd76 Allow compiletest to see symlinked targets. 2016-12-16 23:43:58 -08:00
Scott Olson
6ec3d65068 Revert "Revert "rustup to rustc 1.15.0-dev (ace092f56 2016-12-13)"" 2016-12-16 17:10:16 -08:00
Scott Olson
0deabf9c00 Revert "rustup to rustc 1.15.0-dev (ace092f56 2016-12-13)" 2016-12-15 01:16:06 -08:00
Oliver Schneider
9ec97bac71
enable auxiliary builds 2016-12-14 17:06:36 +01:00
Oliver Schneider
8b8c7430f1
re-use mir-opt compiletest instead of rolling our own 2016-12-14 17:06:36 +01:00
Scott Olson
fc3e1c0064 compiletest: Don't automatically enable MIRI_LOG=trace. 2016-11-26 23:21:25 -08:00
Oliver Schneider
986b3a07c2
layout computation can fail, make it fail with a miri error 2016-11-18 10:38:07 +01:00
Oliver Schneider
26ccc1e4bc
add a step counter that can be changed during interpretation 2016-11-18 10:38:07 +01:00
Oliver Schneider
51ff9fdaf6
deallocate all locals on function exit and transitively freeze constants through pointers 2016-11-18 10:05:55 +01:00
Oliver Schneider
4ebf7bfea6
rustup allows one to install the rust source, that's obviously not a target 2016-11-17 11:31:53 +01:00
Oliver Schneider
fd68670c0a
merge closures and function and implement some closure vtable cases 2016-11-15 17:19:37 +01:00
Oliver Schneider
64155ffd10
implement fn item -> trait object conversion 2016-11-15 16:32:21 +01:00
Oliver Schneider
1c5c6cd078
allow zsts in the zero case of a nullable pointer optimized enum 2016-11-15 16:15:17 +01:00
Oliver Schneider
5ee75c0805
don't print in the binop tests 2016-11-15 15:24:22 +01:00
Oliver Schneider
4748587a77
fix creation of simd types 2016-11-15 15:23:19 +01:00
Oliver Schneider
e2091ff934
add more atomic intrinsics 2016-11-15 15:19:38 +01:00
Oliver Schneider
f77a0ab10b
fix writing int->ptr transmuted primvals to memory 2016-11-15 15:18:49 +01:00
Oliver Schneider
13f22f8344
print traces only when not running on the rust run-pass test suite (since tracing is slow) 2016-11-15 14:33:07 +01:00
Oliver Schneider
14ff6411f0
make sure ByVal pointers act just like ByRef to a pointer 2016-11-15 14:12:49 +01:00
Oliver Schneider
511fa40d23
add test for int -> fn ptr cast 2016-11-15 14:11:00 +01:00
Oliver 'ker' Schneider
d42a7d021d fix null optimizations for smaller than pointer enums
fixes #76
2016-11-11 13:10:47 +01:00
Oliver 'ker' Schneider
921f5af1fe ensure that integers cast to pointers will never point at a valid alloc, not even the zst alloc 2016-11-10 19:20:11 +01:00
Scott Olson
33b1676bda Merge pull request #75 from oli-obk/master
implement more drop stuff
2016-11-06 01:29:14 -08:00
Paul Lietar
86062ef930 Read discriminant as a signed integer if specified by layout.
This ensures it gets sign extended correctly.

Fixes #78
2016-11-05 15:41:19 +00:00
Oliver Schneider
07c752cc82
fix the block processing for the drop_in_place intrinsic 2016-11-04 17:55:06 +01:00
Oliver Schneider
893f16389e
run drop on array elements 2016-11-04 17:34:33 +01:00
Oliver Schneider
5ef7924aa9
call drop for all elements of an owned slice 2016-11-04 16:51:43 +01:00
Oliver Schneider
c4c8764f53
generate a drop method pointer in the vtable and process it 2016-11-04 16:38:04 +01:00
Oliver Schneider
0420c27c8e
fix drop ordering and forward fat pointer extras to fields
this doesn't yet use the fat pointer extras
2016-11-04 15:55:05 +01:00
Oliver Schneider
8003c570d8
don't panic on pointer to value comparison in primvals 2016-11-04 15:49:14 +01:00
Oliver Schneider
73d7f1d41b
implement drop for NonZero optimized enums 2016-11-04 09:34:54 +01:00
Oliver Schneider
ff95efc525
Revert "Fix tests broken by std::vec::SetLenOnDrop."
This reverts commit 366c793306.
2016-11-04 09:15:59 +01:00
Oliver Schneider
2a35b3e322
call user defined drop impls 2016-11-03 17:32:37 +01:00
Oliver Schneider
e406099348
sanity check that boxes of zsts don't deallocate the zst allocation 2016-11-03 16:01:14 +01:00
Scott Olson
c938553a10 Add test for 39bb1254d. 2016-10-18 21:45:11 -06:00
Scott Olson
6503148589 Optimize reads of field projections of ByValPairs.
This helps in the case of field projections of the results of checked
binary operations. E.g.:

    _1 = CheckedAdd(const 1i32, const 2i32);
    assert(!(_1.1: bool), "attempt to add with overflow" -> bb1

Previously, the `_1.1` field projection lvalue would force_allocate `_1`
so it could read the memory in the old-style way. Now checked math with
its assertions will not allocate at all.

The oom2.rs compile-fail test had to be re-written, because the old
version of it no longer allocates _at all_ (yay!), so it would hit the
stack depth limit instead, from recursion.
2016-10-16 19:58:22 -06:00
Scott Olson
b1094f6c1e Deallocate primval conversion hack allocs.
It's a hack, sure, but it should learn some manners.
2016-10-16 03:21:41 -06:00
Scott Olson
49e6c57ef9 Do not pre-allocate local variables.
Thanks to the `Value` locals refactoring, now primitive locals (ints,
floats, chars, bools, and the like) will not require `Allocation`s at
all, and locals that are never initialized at all because of conditional
control flow won't be wasting memory.
2016-10-15 23:31:42 -06:00
Scott Olson
6c463b7562 Hold an Lvalue for the return pointer in a frame.
Previously ReturnPointer was just the first slot in the locals array,
which had type `Vec<Pointer>`. But after my recent refactoring, locals
is `Vec<Value>` and it became increasingly hacky to pull a pointer out
of the first slot to be the value. Besides, that hack wouldn't allow
ReturnPointer to ever be an `Lvalue::Local`, referring directly to a
local on a higher stack frame.

Now ReturnPointer has no presence in the locals array, instead being
upgraded to its own field on `Frame`.

This introduces a couple of new hacks, detailed by some of my FIXME
comments, so that I could get the tests passing again and commit. More
commits coming soon should clean up these hacks without much trouble,
and overall I feel that the code is converging on a cleaner, more
efficient design.
2016-10-15 19:48:30 -06:00
Scott Olson
5f65ee2713 Refactor in preparation for Value locals.
Turning locals into `Vec<Value>` will allow writing `PrimVal` results
directly into the locals array without creating `memory::Allocation`s
for every local.

This will entail passing around a generalized kind of `Lvalue` instead
of `Pointer`s for the destinations of operations. Replacing `Pointer`
with `Lvalue` is mostly done with this commit, but expanding `Lvalue`
will come later.

This commit turns every local from `Pointer` into `Value::ByRef(ptr)`.
Locals which are `Value::ByVal(prim_val)` will come in a later commit.
2016-10-14 03:31:45 -06:00
Oliver Schneider
c9914cd3ae
fix enum variants with multiple fields 2016-09-30 10:45:52 +02:00
Oliver Schneider
f1c5bf2281
fix intrinsics and implement more of them 2016-09-29 15:58:26 +02:00
Oliver Schneider
787feaad4b
allow tuple field indexing into anonymous tuples 2016-09-28 18:22:53 +02:00
Oliver Schneider
1c18f6ddfa
implement slice patterns 2016-09-28 18:22:09 +02:00
Oliver Schneider
73f6d6e418
fix run-pass test error message parsing 2016-09-28 14:53:43 +02:00
Oliver Schneider
9e9d05e3ef
run compile-fail tests after run-pass tests
it's annoying when debugging miri to have compile-fail tests fail due to some temporary
assertions or panics.
2016-09-28 14:53:11 +02:00
Oliver Schneider
5b89f3fb94
implement Arc<T> -> Arc<Trait> unsizing 2016-09-27 18:01:33 +02:00
Oliver Schneider
622d407e0e
don't abort on the first failed test 2016-09-27 17:02:24 +02:00
Oliver Schneider
f4516e738b
be able to find statics in other crates 2016-09-27 17:02:04 +02:00
Oliver Schneider
d6f1ba89ce
fix matching on chars
fixes #63
2016-09-27 11:10:25 +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
b3190359df
refactor away get_fat_ptr 2016-09-23 15:48:23 +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
0f578f0d2e
fully implement size_of_val and add various tests that now succeed 2016-09-22 13:00:43 +02:00
Oliver Schneider
145cbf844c
enable A<Struct> -> A<Trait> downcasting 2016-09-21 18:00:04 +02:00
Oliver Schneider
21e924975d
only split the Fn* arguments in case of closures and function pointers 2016-09-21 15:57:13 +02:00
Oliver Schneider
16f6ae3933
fix calling Fn closures as FnOnce closures 2016-09-20 18:31:55 +02:00
Oliver Schneider
63cc7fc9e8
fix miri backtrace panic 2016-09-20 12:51:48 +02:00
Scott Olson
c679c71def Freeze static memory of string constants. 2016-09-19 04:10:18 -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
Oliver Schneider
562c64d86a
add some sanity tests 2016-09-15 16:32:30 +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
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
Oliver Schneider
23eb8a5cf2
error on failed assumptions 2016-09-13 13:08:57 +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
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
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
Oliver Schneider
f5a89d297c
rustc now can use integer literals in attributes 2016-09-07 10:27:57 +02:00
Scott Olson
45cf3cfde2 Update for changes in rustc. 2016-08-27 01:44:54 -06:00
Oliver Schneider
ec897f9156
don't allow runtime-aligning of memory 2016-07-22 16:35:39 +02:00
Oliver Schneider
4c258d1ed2
Merge remote-tracking branch 'origin/master' into alignment 2016-07-07 13:17:08 +02:00
Oliver Schneider
9669acc3a3
Merge remote-tracking branch 'origin/master' into the_outer_limits 2016-07-07 11:27:49 +02:00
Oliver Schneider
51ce4a2584
use byteorder's write_f{32,64} instead of transmuting 2016-07-06 11:51:32 +02:00
Oliver Schneider
aca691160d
add a test 2016-07-06 11:19:24 +02:00
Oliver Schneider
082effb3ee
align allocations in the worst possible way 2016-07-05 14:27:27 +02:00
Oliver Schneider
4781a6ba54
add attribute to limit the stack size 2016-07-05 13:23:58 +02:00
Oliver Schneider
88d98998e1
add execution time limit 2016-07-05 13:17:40 +02:00
Oliver Schneider
3e5d86bb08
test the memory limit 2016-07-05 13:04:53 +02:00
Oliver Schneider
4b831569f6
implement floats by running the ops on the host architecture 2016-07-05 09:08:24 +02:00
Oliver Schneider
3d9588332f
address comments 2016-07-01 13:09:40 +02:00
Oliver Schneider
594f1d79da
optimize all ZST allocations into one single allocation 2016-07-01 13:09:17 +02:00
Scott Olson
64eca52ad3 Run Mir passes (copied from rustc pre-trans). 2016-06-30 21:33:24 -06:00
Oliver Schneider
ae3c49a9e5
use the item path printer that prints user friendly textual paths 2016-06-29 17:07:05 +02:00
Oliver Schneider
055b6a8d38
store full TargetDataLayout in Memory instead of just pointer size 2016-06-23 09:36:37 +02:00
Oliver Schneider
b33a9f3431
there can never be too many tests 2016-06-23 09:36:37 +02:00
Oliver Schneider
3404a9da2a
add test for invalid char 2016-06-23 09:36:37 +02:00
Oliver Schneider
2dbd30fa51
implement char handling 2016-06-21 09:35:20 +02:00
Oliver Schneider
ed4af21605
fix master 2016-06-20 12:33:54 +02:00
Oliver Schneider
a1082b9b1a
Merge remote-tracking branch 'origin/master' into oflo 2016-06-20 12:33:09 +02:00
Oliver Schneider
e90ee1674a
fix comparing of function pointers 2016-06-20 10:35:15 +02:00
Oliver Schneider
d9776427b4
compiletest 2.0 uses json errors and doesn't depend on the output format anymore 2016-06-20 10:34:55 +02:00
Scott Olson
f9c1cfa889 Remove now-useless #[miri_run] attributes.
Except for `ints.rs`, which is already handled by a pending pull request.
2016-06-17 22:52:30 -06:00
Scott Olson
35c76c6862 Ignore non-Rust files in run-pass.
Specifically, Vim's .<filename>.swp files were being run as tests.
2016-06-17 21:06:25 -06:00
Oliver Schneider
00eb198a82
implement fn -> unsafe fn pointer casts 2016-06-17 16:49:06 +02:00
Oliver Schneider
4f48bef896
cfail test for std::env::args() 2016-06-17 15:48:15 +02:00
Oliver Schneider
6376ef4228
run the *compiled* run-pass tests on the host machine 2016-06-17 15:21:01 +02:00
Oliver Schneider
3ba4f6db04
remove code repetition and fix overflowing intrinsics 2016-06-17 15:16:41 +02:00
Oliver Schneider
58b4fac1ce
implement overflowing ops 2016-06-17 13:09:20 +02:00
Oliver Schneider
60f2bb9c70
miri knows about --sysroot 2016-06-16 11:05:10 +02:00
Oliver Schneider
f01be91997
miri needs to be *built* with RUST_SYSROOT, not *run* 2016-06-16 11:00:46 +02:00
Oliver Schneider
2ed6f1c90a
caught by travis 2016-06-16 10:54:10 +02:00
Oliver Schneider
453a22a1e0
forward RUST_SYSROOT to miri test calls 2016-06-16 10:52:23 +02:00
Oliver Schneider
b6fca7355c
error out if a run-pass test fails 2016-06-16 10:50:23 +02:00
Oliver Schneider
9cceef0663
simplify target name extraction 2016-06-16 10:34:05 +02:00
Oliver Schneider
506f2deaf9
actually execute miri-pass tests 2016-06-16 10:30:47 +02:00
Oliver Schneider
82dc95c3ad
create a miri-pass test that allows us to run miri for arbitrary targets 2016-06-15 16:01:00 +02:00
Scott Olson
b24edd6a23 Merge pull request #24 from oli-obk/typesafe_fn_calls
Typesafe fn calls
2016-06-15 05:05:50 -06:00
Oliver Schneider
a55ac1fea8
pass arguments to start 2016-06-15 12:55:04 +02:00
Oliver Schneider
8abd293119
sysroot_flag is now used for more flags 2016-06-14 11:54:28 +02:00
Oliver Schneider
1bd00e8cb4
run start and main language item if provided 2016-06-14 11:52:45 +02:00
Oliver Schneider
c36dcff005
forbid calling functions through pointers of a different type 2016-06-14 10:34:54 +02:00
Oliver Schneider
55fd060cd8
don't use #[miri_run] anymore, but execute the main function 2016-06-13 15:33:05 +02:00
Oliver Schneider
9565d48203
add tests for fn pointers 2016-06-13 12:29:01 +02:00
Oliver Schneider
3aa585e421
Merge remote-tracking branch 'origin/master' into function_pointers2 2016-06-13 11:24:01 +02:00
Scott Olson
024b3d2b45 Merge remote-tracking branch 'oli/function_pointers2' into fixup-function_pointers2 2016-06-11 16:46:01 -06:00
Scott Olson
71188ea2df Remove inception test for now. 2016-06-11 13:10:25 -06:00
Oliver Schneider
384623daa7
function pointers 2016-06-10 18:06:36 +02:00
Oliver Schneider
67211218f0
display the full path to the function if no MIR is found 2016-06-10 18:04:12 +02:00
Oliver Schneider
cc1ca73f57
jit interpretation of constants 2016-06-03 15:48:56 +02:00
Oliver Schneider
97bc1d4bee
add a const fn test 2016-06-02 17:36:05 +02:00
Oliver Schneider
6ac64f19af
also step through promoteds, constants and statics 2016-06-02 17:05:17 +02:00
Oliver Schneider
5211178377
note that not all literal items are function pointers 2016-06-01 19:20:23 +02:00
Oliver Schneider
e73fa7733d
can't evaluate failed assertions yet 2016-06-01 18:50:20 +02:00
Oliver Schneider
49dfd82fd3
fallout because compiletest tried to use rustc's log crate 2016-06-01 11:47:55 +02:00
Oliver Schneider
29516c3129
improve out of bounds error message 2016-06-01 11:22:37 +02:00
Oliver Schneider
12c2e5fab2
4byte pointers 2016-06-01 11:10:43 +02:00
Scott Olson
8961063c60 Handle some cases of StructWrappedNullablePointer.
... plus a bunch of minor refactorings.
2016-05-25 00:39:12 -06:00
Scott Olson
f63206ed2f Handle discriminant_value intrinsic. 2016-05-09 23:41:57 -06:00
Scott Olson
2d32503409 Support C ABI memcmp function. 2016-05-09 21:53:20 -06:00
Scott Olson
78caee20c7 Add test for size_of_val::<str>. 2016-05-09 21:03:53 -06:00
Scott Olson
b9c37124be Handle size_of_val for slice types. 2016-05-09 21:01:12 -06:00
Scott Olson
6d9a748858 Handle size_of_val for sized types. 2016-05-09 20:44:42 -06:00
Scott Olson
382dc0ccb2 Update for my github username change. 2016-05-09 20:08:37 -06:00
Scott Olson
a6b9b165c3 Handle CEnum layouts with signed representations. 2016-05-08 19:49:07 -06:00
Scott Olson
d825ef1bf1 Move StructWrappedNullablePointer-using test to bugs dir. 2016-05-08 19:30:17 -06:00
Scott Olson
9e289fa0aa Fully handle RawNullablePointer layout. 2016-04-30 01:04:17 -06:00
Scott Olson
2db3597b56 Implement boolean binops. 2016-04-23 00:39:38 -06:00
Scott Olson
6f50289d43 Fix lvalue projections with fat pointer bases. 2016-04-23 00:26:10 -06:00
Scott Olson
4a863c2a6a Replace Repr with the new ty::layout in rustc.
Lvalues still need work (see lvalue_layout).
2016-04-23 00:03:59 -06:00
Oliver Schneider
5ea57ccbcd bug: transmute::<*const T, Option<Box<T>>>(..) 2016-04-22 20:09:00 +02:00
Oliver Schneider
feca81307f wild pointer and null pointer deref 2016-04-22 20:09:00 +02:00
Oliver Schneider
ef5fc75c35 various testing improvements 2016-04-22 20:09:00 +02:00
Oliver Schneider
211c12a1d0 use compiletest_rs 2016-04-22 10:34:14 +02:00
Pascal Hertleif
f6f393996b Add Compile Test 2016-04-14 14:54:59 +02:00