Commit Graph

350 Commits

Author SHA1 Message Date
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