David Renshaw
6a4c62c167
add iter_any test
2018-05-11 13:51:04 +02:00
Oliver Schneider
20c2e0bede
Test miri on mac os
2018-05-11 11:29:18 +02:00
Oliver Schneider
0eb3c18565
Use a deterministic method for executing the start lang item
2018-05-07 10:46:32 +02:00
bjorn3
e09a996b2a
Fix some more tests with some unsafe code
2018-04-13 16:04:57 +02:00
bjorn3
a6cdd8a81b
Fix it
2018-04-13 16:04:57 +02:00
Oliver Schneider
cd89e56f15
Get the tests one step further
2018-04-13 16:04:57 +02:00
Oliver Schneider
bf26b96dc7
Update to latest rustc changes
2017-12-05 17:06:03 +01:00
Oliver Schneider
fd77411a18
Compiler bug
2017-11-30 13:31:37 +01:00
Oliver Schneider
4e8b9451ab
Update error messages
2017-11-27 14:31:51 +01:00
Oliver Schneider
042430270f
repeat expressions abort due to OOM instead of execution time exhaustion
2017-10-12 11:13:56 +02:00
Ralf Jung
6e8650395d
fix oom2 test
2017-09-25 16:21:20 +02:00
Ralf Jung
1ad9709e00
get rid of ad-hoc inhabitedness test
2017-09-22 13:24:55 +02:00
Oliver Schneider
709ab245df
Merge branch 'master' into windows
2017-09-16 15:06:26 +02:00
Oliver Schneider
cf92528426
Add windows support
2017-09-16 14:02:59 +02:00
Ralf Jung
5a5aa49db7
get rid of the --miri_host_target hack
2017-09-16 13:29:38 +02:00
Ralf Jung
e7b0637e68
Merge branch 'master' into tests
2017-09-16 12:55:49 +02:00
Ralf Jung
060bb2fa9f
use ui test mode rather than mir-opt
...
These tests are not run per default
2017-09-16 12:36:31 +02:00
Ralf Jung
bc240ff606
add an undef validation test
2017-09-16 12:11:48 +02:00
Ralf Jung
2ea6663440
validation: check that int, float etc. are not undef
2017-09-16 11:45:56 +02:00
Ralf Jung
5d2ed4d2ba
Something in panic handling fails validation with full-MIR
2017-09-13 18:15:59 +02:00
Ralf Jung
c1630973d0
Disable the address-of-ZST test for now; it is buggy as it disagrees with rustc
2017-09-13 18:15:59 +02:00
Ralf Jung
bac89ae1d8
enable validation for a bunch of more tests
2017-09-13 15:46:53 +02:00
Ralf Jung
aa578de018
identify write locks by lvalues, not regions
...
This makes a new compile-fail test pass.
2017-09-13 14:37:31 +02:00
Oliver Schneider
ce3576f7d8
Use correct rustc in rust's CI
2017-09-11 11:01:26 +02:00
Ralf Jung
ce4875484f
there are more tests we can enable again
2017-09-09 11:30:15 +02:00
Ralf Jung
41f228824f
fix warnings in tests; update validation whitelist
2017-09-09 11:18:02 +02:00
Ralf Jung
00c909dbd0
we can enable a bunch of tests for validation again
2017-09-09 11:18:02 +02:00
Oliver Schneider
5570a78c51
Disable validation for some tests
2017-09-07 16:56:46 +02:00
Ralf Jung
9fe0d60da6
disable optimized tests until rustc is fixed
2017-09-06 10:30:00 +02:00
Ralf Jung
59cbfdbf08
enable a test that works just fine
2017-09-06 10:10:43 +02:00
Oliver Schneider
e9315a60e4
Rustup
2017-09-06 10:10:15 +02:00
Ralf Jung
3b6852abf0
Merge branch 'master' into align_offset
2017-09-04 13:22:11 +02:00
Ralf Jung
8dff161bcb
update compiletest; we do not need tempdir any more
2017-09-04 13:02:55 +02:00
Ralf Jung
ea911ca8a7
disable validation in failing tests for now
2017-09-04 11:48:48 +02:00
Oliver Schneider
cf25ef9d9d
Implement align_offset
intrinsic and thus enabling from_utf8
2017-09-01 12:26:51 +02:00
Oliver Schneider
58a59e9d23
Rustup (generator support)
2017-08-30 13:16:27 +02:00
Ralf Jung
e6a874b0bf
test new From instances for Rc
2017-08-29 16:51:26 +02:00
Oliver Schneider
506a5c7910
Mir optimizations treat single variant enums as structs
2017-08-29 12:26:20 +02:00
Oliver Schneider
88fc45b37c
Get some more rustc tests working
2017-08-29 11:58:22 +02:00
Oliver Schneider
206f0bd6df
Fix panic in subslice patterns of arrays ( fixes #276 )
2017-08-29 10:03:00 +02:00
Oliver Schneider
f817f1c660
Get rid of env var race condition once and for all
2017-08-28 17:32:21 +02:00
Oliver Schneider
dd5b0100f3
Merge remote-tracking branch 'origin/master' into memory
2017-08-28 16:13:09 +02:00
Oliver Schneider
385b5b9fd1
Merge branch 'master' into priroda
2017-08-28 15:37:10 +02:00
Oliver Schneider
02a0f0f814
Turn off validation for some compile-fail tests
2017-08-28 15:04:32 +02:00
Oliver Schneider
9d10e0154b
Mir validation can't cope with mem::uninitialized::<SomeEnum>()
2017-08-28 14:53:43 +02:00
Oliver Schneider
e28f4a8e3e
Add a regression test for #313
2017-08-28 14:10:59 +02:00
Ralf Jung
907d2c7310
rustc #43457 got fixed, we can enable more tests
2017-08-27 18:18:32 +02:00
Ralf Jung
2307d6fc5b
Merge branch 'master' into memory
2017-08-26 13:51:13 +02:00
Ralf Jung
2e28e14474
reorder lets so that build_dir is deleted last
2017-08-26 13:23:04 +02:00
Ralf Jung
df20c0684c
use tempdir to create a dedicated directory for each test
2017-08-26 13:12:55 +02:00
Ralf Jung
ac80212f7e
move tests with MIR-opt to their own function we we can run them separately
2017-08-25 19:21:10 +02:00
Ralf Jung
f036fe0d32
refactor memory read API: provide only size-based, no type-based methods
2017-08-25 16:20:13 +02:00
Ralf Jung
8539728607
memory: make sure we check non-NULL/undef even fore 0-sized accesses
2017-08-25 14:41:59 +02:00
Ralf Jung
e332ab9b13
Handle closures in get_field_ty
...
Fixes #304
2017-08-24 13:34:05 +02:00
Ralf Jung
2fccae8aac
add another compile-fail test for validation
2017-08-18 11:30:18 +02:00
Ralf Jung
90edc03eea
Add a test demonstrating the limitations of our lfietime resolution
2017-08-18 11:29:51 +02:00
Ralf Jung
7e5d971c56
fix warnings; make test suite pass again
2017-08-12 09:45:44 -07:00
Ralf Jung
2be159bacd
enable a test that waited for a rustc fix
2017-08-11 09:12:46 -07:00
Oliver Schneider
8019deb0a9
Update compiletest.rs
2017-08-10 19:39:32 +02:00
Oliver Schneider
33ff32cac8
Get the test suite working inside the rustc test suite
2017-08-10 18:32:06 +02:00
Ralf Jung
1326aed02c
rustfmt
...
Except for error.rs, the result there looks rather ugly
2017-08-10 08:48:41 -07:00
Ralf Jung
34685044f9
add a bunch of compile-fail tests for validation
2017-08-09 18:01:10 -07:00
Ralf Jung
5e018b1deb
analyzing hashmap.rs uncovered a deeper problem; disable validation there for now
2017-08-09 15:49:47 -07:00
Ralf Jung
bff1ad156e
integer-ops needs a rustc patch to work again
2017-08-09 15:49:47 -07:00
Ralf Jung
668491a892
Work on making validation test pass again
...
Turns out that tracking write locks by their lifetime is not precise enough,
but for now, we don't have an alternative. Also, we need to force_allocate
what we acquire or else the memory will not be in the right state.
2017-08-09 15:49:47 -07:00
Ralf Jung
11f0aedc3d
add some tests making sure we get the alias checking right
2017-08-09 15:49:47 -07:00
Oliver Schneider
8ab1eeef51
Implement packed statics
2017-08-08 17:09:26 +02:00
Oliver Schneider
4ba2b82f31
Split the alloc id address space into functions and normal allocs
...
instead of interleaving them as before.
The next step is to also separate out static memory into its own
address space.
2017-08-08 17:09:25 +02:00
Ralf Jung
847396e412
Re-do memory locking (again). Now with proper support for multiple independent shared borrows of the same mutable reference.
2017-08-07 12:57:32 -07:00
Ralf Jung
2a1d7666ed
Merge pull request #286 from RalfJung/mir-validate
...
Update MIR validation and test it
2017-08-04 22:02:52 -07:00
Oliver Schneider
181bb30d07
Rustc reorders fields, but miri expects them in source order
2017-08-04 13:43:17 +02:00
Ralf Jung
4957031e3c
selectively disable validation in compile-fail where appropriate. cargo test now passes :)
2017-08-03 18:13:23 -07:00
Ralf Jung
9458111681
for now, disable validation on optimized tests -- inlining breaks validation
2017-08-03 18:13:23 -07:00
Ralf Jung
58a17026c9
Let -Zmir-emit-validate also control whether miri even acts on the validation commands
2017-08-03 18:13:23 -07:00
Ralf Jung
766a69f656
make test suite MIR validation aware. run-pass passes with and without fullmir, if optimizations are disabled!
2017-08-03 18:13:22 -07:00
Oliver Schneider
726b027ba3
Merge pull request #280 from solson/archeology
...
Produce backtraces for miri internals
2017-08-03 23:02:29 +02:00
Ralf Jung
2cf394955b
actually, we can use a plain constant
2017-08-03 12:58:34 -07:00
Ralf Jung
0f43321178
no need to do run-time formatting
2017-08-03 12:39:55 -07:00
Ralf Jung
de1376f923
Add a build script to inform the binary about its profile, and use that in the test suite
2017-08-03 11:38:00 -07:00
Ralf Jung
c533cf8496
fix size_of_val on unsized tuples
2017-08-02 15:29:13 -07:00
Oliver Schneider
40677a5c47
Choose release miri for release tests
2017-08-02 18:28:12 +02:00
Oliver Schneider
f8c61da070
Add a test for untagged unions
2017-08-02 12:56:07 +02:00
Oliver Schneider
adfea61665
Allow machines to create new memory kinds
2017-08-01 09:56:21 +02:00
Oliver Schneider
11e30a65e6
Split up miri into the librustc_mir and bin parts
2017-08-01 09:56:21 +02:00
Ralf Jung
4672cb7bde
make force_allocation handle packed ByValPair
2017-07-26 23:45:22 -07:00
Oliver Schneider
f906c5458c
Merge pull request #272 from oli-obk/mir-validate
...
Mir validate
2017-07-26 23:37:52 +02:00
Ralf Jung
744780e794
more hacks to make test cases pass
2017-07-25 17:31:40 -07:00
Ralf Jung
e5cc8aaf5b
Test that &* of a dangling (and even unaligned) ptr is okay
2017-07-25 17:02:57 -07:00
Ralf Jung
f960f4c537
fix casting integers to pointers
2017-07-21 20:02:48 -07:00
Oliver Schneider
4cfa7c5d12
Prep miri repository for rustc merger
2017-07-21 11:30:56 +02:00
Oliver Schneider
b4e300d577
Merge pull request #266 from RalfJung/align
...
Always test alignment in memory.rs
2017-07-21 09:46:50 +02:00
Ralf Jung
14cb85809b
always test alignment in memory.rs
2017-07-20 13:24:06 -07:00
Oliver Schneider
f2d0101065
Also test optimized MIR
2017-07-20 20:25:43 +02:00
Oliver Schneider
f822ad5c63
Merge pull request #260 from RalfJung/tests
...
Split up test suite
2017-07-20 16:07:08 +02:00
Eduard-Mihai Burtescu
e79bb42ab3
Merge pull request #262 from RalfJung/never
...
remove ad-hoc 'never' type check in read_lvalue
2017-07-20 15:13:21 +03:00
Oliver Schneider
101e5a8ba0
Move rustc tests from tests to a binary, since they are only run manually anyway
2017-07-20 13:11:40 +02:00
Ralf Jung
3b19c83c67
remove ad-hoc 'never' type check in read_lvalue
2017-07-19 20:32:51 -07:00
Ralf Jung
7648ccaae1
add test for misaligned pointer loads
2017-07-19 20:26:30 -07:00
Ralf Jung
e38ee0a30a
split up the test suite
2017-07-19 12:52:20 -07:00
Ralf Jung
e4ffab1754
enable test code that passes just fine
2017-07-19 11:38:15 -07:00
Ralf Jung
72664e42aa
No longer check aligment and non-NULLness on &
...
This breaks creating unaligned raw pointers via `&packed.field as *const _`, which needs to be legal.
Also it doesn't seem like LLVM still relies on this, see
* https://github.com/solson/miri/issues/244#issuecomment-315563640
* https://internals.rust-lang.org/t/rules-for-alignment-and-non-nullness-of-references/5430/16
We probably want to handle this invariant like the others that validation is concerned with, and only
check it on function boundaries for now.
2017-07-19 11:28:35 -07:00
Ralf Jung
ff9192e346
remove reundant dangling checks in {r,d}eallocate
2017-07-18 13:50:54 -07:00
Oliver Schneider
2e562a4d64
Fix static mutation tests
2017-07-14 17:39:19 +02:00
Oliver Schneider
7701ff2f89
Remove duplicate test
2017-07-14 17:39:19 +02:00
Oliver Schneider
192da8819f
Ensure that it is not possible to explicitly free stack memory
2017-07-14 17:36:06 +02:00
Oliver Schneider
56d4de303f
Merge pull request #247 from RalfJung/packed
...
Re-do packed memory accesses
2017-07-14 08:30:30 +02:00
Ralf Jung
0fbbcae92d
packed structs: test unsize coercions
2017-07-13 14:18:26 -07:00
Ralf Jung
287b6be5ca
track alignment also for ByRef values
2017-07-12 21:06:57 -07:00
Ralf Jung
1fe310c8ba
Memory::read_ptr has to check for relocations on the edges
2017-07-12 19:30:37 -07:00
Ralf Jung
c149c3fc6a
Re-do packed memory accesses
...
We now track in the lvalue whether what we computed is expected to be aligend or not, and then set some state in the memory system accordingly to make it (not) do alignment checks
2017-07-12 17:46:56 -07:00
Oliver Schneider
4a03e45169
Add tests for #113
...
resolves #113
2017-07-12 09:29:18 +02:00
Ralf Jung
9a9666e2a6
Add a test for using a too big alignment on reallocate
2017-07-11 10:28:32 -07:00
Ralf Jung
ea730ab20f
update tests for new allocator API
2017-07-10 16:15:58 -07:00
Ralf Jung
e60f11f52c
update for latest nightly
2017-07-10 13:57:18 -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
Oliver Schneider
10ec543b9e
Merge pull request #235 from RalfJung/intrinsics
...
Implement some missing intrinsics
2017-07-04 08:38:22 +02:00
Ralf Jung
19d6ad74e5
add test for div-by-zero with the operator (rather than the intrinsic)
2017-07-03 20:59:47 -07: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
79ab4f0e8c
make u128 test work (commenting out the use of checked_shl)
2017-07-03 20:36:04 -07:00
Ralf Jung
440c4778fa
validate size and alignment on reallocate and deallocate
2017-07-03 16:47:58 -07:00
Ralf Jung
bdcdb605a4
fix test on i686
2017-07-03 16:16:05 -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
42d3edada7
Merge pull request #220 from oli-obk/undo_single_field_opt
...
Remove the `field` field from `Lvalue::Local`
2017-06-28 10:15:36 +02:00
David Renshaw
54821102b4
update tests for new error message
2017-06-27 21:31:38 -04:00
Oliver Schneider
5dfaacf310
Simplify all the code
2017-06-27 13:36:41 +02:00
Ralf Jung
4e90e3bcf6
remove redundant test
2017-06-24 11:05:13 -07:00
Ralf Jung
fbc00ddc95
make sure that 'identity casting' works
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
Ralf Jung
7b7f690274
Make sure that casting a ptr-integer down to u8 makes it unusable
2017-06-24 11:05:13 -07:00
Oliver Schneider
4aca1d0e0b
Make zst compile-fail tests more readable
2017-06-24 12:46:35 +02:00
Oliver Schneider
377fcce9b8
Ensure tests run with and without full MIR
2017-06-23 16:41:56 +02:00
Oliver Schneider
9be3e9185b
Remove the zst allocation
2017-06-23 12:55:49 +02:00
Ralf Jung
12935b6514
add some compile-fail tests
2017-06-22 14:46:53 -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
2f61356858
permit offsetting a NULL-ptr by 0, to fix hashmap test
2017-06-22 13:41:13 -07:00
Oliver Schneider
8de111018d
Merge pull request #201 from oli-obk/test_suite_fails
...
"Support" more libc functions
2017-06-22 14:16:45 +02:00
Oliver Schneider
2b9cfb6850
Update regions-mock-trans.rs
2017-06-22 12:30:02 +02:00
Oliver Schneider
1883aac8c2
Update foreign-fn-linkname.rs
2017-06-22 12:27:18 +02:00
Oliver Schneider
522ac49364
Merge pull request #206 from RalfJung/ptrs
...
Pointer Arithmetic
2017-06-22 11:25:05 +02:00
Ralf Jung
7b2b0dd56c
test HashMap creation in libstd-MIR, and make it work again
2017-06-21 23:09:34 -07:00
Ralf Jung
6eafb10b87
add test for function pointer offsets
2017-06-21 21:54:42 -07:00
Ralf Jung
7b1582b383
permit integer addition and subtraction on ptr-integers
2017-06-21 21:38:43 -07:00
Ralf Jung
184d3b3bad
expand thread-local storage tests to cover dtor order and re-running dtors
2017-06-21 20:17:07 -07:00
Ralf Jung
8101592ab2
run fullmir tests against rustc; add output explaining what is being tested
2017-06-21 14:28:13 -07:00
Oliver Schneider
ecc44fec7e
Implement malloc
and free
2017-06-21 15:51:42 +02:00
Oliver Schneider
f22c7e43df
Store env vars where necessary
2017-06-21 15:46:30 +02:00
Oliver Schneider
a6cd7a2e08
Also move some compile-fail tests to fullmir-only
2017-06-21 15:07:40 +02:00
Oliver Schneider
b001b5531b
The latest nightly doesn't expose as much MIR anymore as it used to
2017-06-21 09:44:10 +02:00
Oliver Schneider
ef29e6a30b
Add fullmir tests
2017-06-21 08:57:17 +02:00
Oliver Schneider
a82fe9ae0c
Enable more zst writes and reads
2017-06-20 16:26:53 +02:00
Oliver Schneider
ea6f6079ca
Use PrimVal instead of Pointer where applicable
2017-06-20 14:28:19 +02:00
Oliver Schneider
a6734cd890
Fix unions
2017-06-20 14:28:18 +02:00
Oliver Schneider
fcf495821e
Get rid of the integer allocation
2017-06-20 14:28:18 +02:00
David Renshaw
a28c7990ea
update compiletest and remove obsolete comment
2017-06-20 07:08:29 +09:00
Ralf Jung
4b1a12c240
test the Rc::{into,from}_raw roundtrip
...
This uses some pointer arithmetic based on field offsets
2017-06-12 15:32:16 -07:00
Oliver Schneider
03577a905a
Fix some clippy warnings
2017-06-12 13:56:29 +02:00
Ralf Jung
4ac9fa67a4
enable a test that was accidentally left disabled
2017-06-11 21:16:05 -07:00
Ralf Jung
3a5abf031b
fix comment in aux_test
2017-06-08 11:34:49 -07:00
Ralf Jung
3e1596d8c9
Error out when "primitive MIR math" (as opposed to unchecked intrinsics) overflows
...
Fixes #178
2017-06-07 15:39:44 -07:00
David Renshaw
c8be312933
fix issue 184 by marking the destination as a packed struct
2017-06-06 09:49:34 -04:00
Ralf Jung
36505c7b40
fix bitops being accidentally allowed on pointers from the same allocation
2017-06-05 17:17:16 -07:00
Ralf Jung
a6e6a6fd29
Add some more tests involving Offset/arith_offset and ZST pointers
2017-06-05 15:19:07 -07:00
Ralf Jung
a291153414
Permit ptr->int->ptr roundtrip
2017-06-05 15:18:40 -07:00
Ralf Jung
2a231d66fc
check bounds when using offset intrinsic or MIR op
2017-06-05 14:27:26 -07:00
Ralf Jung
f39e015163
check for overflow when doing pointer arithmetic
2017-06-05 14:23:35 -07:00
Ralf Jung
70227c87bf
fix arith_offset not taking the size of the type into account; test for offset
2017-06-05 14:23:35 -07:00
Ralf Jung
1d0e622a81
test that we cannot observe the bytes representing a pointer
2017-06-05 14:23:35 -07:00
Ralf Jung
6197f4fac9
Permit int->ptr->int roundtrip
2017-06-05 14:23:35 -07:00
Ralf Jung
cfff91ba3e
write_bytes intrinsic: if the write count is 0, the pointer does not have to be valid
2017-06-05 14:23:34 -07:00
Ralf Jung
716653fd76
add comments in the tests explaining what the ignore flags do
2017-06-05 14:23:34 -07:00
Ralf Jung
1b5f77e4c1
Implement Offset like the other binary operators, share code with the intrinsic
...
Also improve drop glue tests
2017-06-05 14:19:10 -07:00
Ralf Jung
31cf66d0e8
remove our array drop glue and use rustc's instead; implement the new Offset and SizeOf operators
2017-06-05 10:06:40 -07:00
Oliver Schneider
b946351083
Merge pull request #174 from RalfJung/xargo-test
...
run test suite also against libstd with full MIR
2017-05-31 23:24:39 +02:00
Ralf Jung
44a45f7c34
run test suite also against libstd with full MIR
2017-05-31 13:39:40 -07:00
David Renshaw
a59d482574
remove unneeded '-gnu' suffix from compiletest ignore directives
2017-05-31 14:21:49 -04:00
David Renshaw
7624bca09e
ignore thread-local-no-dtor test on windows-gnu target
2017-05-31 10:47:26 -04:00
Ralf Jung
b8e0b79222
add a test for output string formatting
2017-05-30 14:02:20 -07:00
Ralf Jung
dad95474cb
test thread-local key with no dtor
2017-05-30 10:41:38 -07:00
Ralf Jung
633a34d6d3
re-disable aux_test -- it passes here, but not on Travis
2017-05-30 10:41:38 -07:00
Ralf Jung
1241938f97
test suite now also passes on MIR-libstd
...
Also enable some tests that were disabled for no apparant reason.
(The comment in zst.rs was wrong, the test was disabled also for miri execution.)
Delete env_args test as the args can actually be queried with MIR-libstd (currently, they are always empty)
2017-05-30 10:41:38 -07:00
Ralf Jung
99433a1ffd
improve fn pointer signature check to allow some casts that should be permitted
...
Also properly check the "non-capturing Fn to fn" case
2017-05-30 10:41:38 -07:00
Ralf Jung
cd6e3e6431
If a "start" lang item incl. MIR is present, run that instead of running main directly
...
This fixes the memory leaks when running a simple "Hello World" with MIR-libstd
2017-05-30 10:41:38 -07:00
Ralf Jung
720c5f874e
implement __rust_maybe_catch_panic
2017-05-30 10:41:38 -07:00
David Renshaw
66495222ab
closure_to_fn_coercion has been stabilized
2017-05-30 09:27:50 -04:00
David Renshaw
0641e932bc
implement __rust_allocate_zeroed C ABI function
2017-05-21 15:48:31 -04:00
David Renshaw
ecf452ce3a
don't match on floating-point literal
2017-05-10 16:38:29 -04:00
Oliver Schneider
da3860a293
Address things complained about by clippy
2017-05-05 10:34:38 +02:00
Oliver Schneider
df9440d5ac
Also test subdirectories of rust/src/test/run-pass
2017-04-25 17:08:12 +02:00
Oliver Schneider
6706d8fdec
Add regression test for bad substs
2017-03-24 09:03:19 +01:00
Oliver Schneider
bbeb7216e0
Thinify the fat pointer on virtual function calls
2017-03-23 18:32:57 +01:00
Oliver Schneider
0927829e14
Add regression test for single field by val tuples
2017-03-23 16:13:01 +01:00
Scott Olson
a82924b3e2
Merge pull request #152 from oli-obk/intrinsics
...
Intrinsics and overflow
2017-03-14 13:35:51 -07:00
Scott Olson
6ee8595375
Merge pull request #147 from oli-obk/rustup
...
rustup to rustc 1.17.0-nightly (60a0edc6c
2017-02-26)
2017-03-14 09:49:40 -07:00
Oliver Schneider
257ac5803f
Don't unconditionally mask bitshift rhs
2017-03-14 14:24:16 +01:00
Oliver Schneider
bb33830c60
Implement more atomic intrinsics
2017-03-14 13:05:51 +01:00
Oliver Schneider
adddde7cba
Implement more float intrinsics
2017-03-14 12:35:38 +01:00
Oliver Schneider
80be25e705
Fix warnings in unit test
2017-03-14 11:14:53 +01:00
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