Commit Graph

1493 Commits

Author SHA1 Message Date
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
Oliver Schneider c16f24b133 Merge pull request #177 from RalfJung/drop-glue
remove our array drop glue and use rustc's instead
2017-06-05 23:40:01 +02: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
Eduard-Mihai Burtescu 14848b3bad Merge pull request #179 from dwrensha/rustup
update for upstream ParamEnv changes
2017-06-03 08:54:05 +03:00
David Renshaw ca8347a1ff update for upstream ParamEnv changes 2017-06-02 21:00:35 -04:00
Oliver Schneider d7d11c1ecb Merge pull request #176 from RalfJung/storage
interpret StorageLive & StorageDead, and check dead stack slots are not used
2017-06-02 06:54:13 +02:00
Oliver Schneider ec7f1d5248 Fix typo 2017-06-02 06:53:52 +02:00
Ralf Jung dd7735b722 make StorageLive kill the current value of the local 2017-06-01 17:59:00 -07:00
Ralf Jung db6ce463fe fix some nits 2017-06-01 11:01:55 -07:00
Ralf Jung e6eaf2083a interpret StorageLive & StorageDead, and check dead stack slots are not used 2017-05-31 17:41:33 -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
Eduard-Mihai Burtescu 1ba426a505 Merge pull request #175 from dwrensha/ignore-windows
remove unneeded '-gnu' suffix from compiletest ignore directives
2017-05-31 21:40:49 +03:00
David Renshaw a59d482574 remove unneeded '-gnu' suffix from compiletest ignore directives 2017-05-31 14:21:49 -04:00
Ralf Jung 6619ed89ba bin/miri.rs looks for RUST_SYSROOT, so should bin/cargo-miri.rs 2017-05-31 11:17:33 -07:00
Eduard-Mihai Burtescu f85c7a2c4d Merge pull request #173 from dwrensha/fix-tls-test
fix thread-local-no-dtor test on MacOS and ignore it on Windows
2017-05-31 18:36:09 +03:00
David Renshaw 7624bca09e ignore thread-local-no-dtor test on windows-gnu target 2017-05-31 10:47:26 -04:00
David Renshaw fbc46276ff prevent 'attempt to shift left with overflow' panic on platforms where pthread_key_t is 64 bits 2017-05-31 10:43:36 -04:00
Oliver Schneider c817e6e4b3 Merge pull request #171 from RalfJung/println
Work with MIR-libstd
2017-05-31 08:24:15 +02:00
Ralf Jung d06c165368 simplify xargo instructions 2017-05-30 18:12:06 -07:00
Ralf Jung 2b37d500f1 simplify determining size and alignment of a pointer 2017-05-30 17:03:45 -07:00
Ralf Jung b44babf230 allocate return pointer only when we start the program via the start lang item 2017-05-30 15:40:26 -07:00
Ralf Jung b8e0b79222 add a test for output string formatting 2017-05-30 14:02:20 -07:00
Ralf Jung cdf7a057f1 latest rust nightly contains all the bits needed to re-compile libstd 2017-05-30 13:25:45 -07:00
Ralf Jung dad95474cb test thread-local key with no dtor 2017-05-30 10:41:38 -07:00
Ralf Jung 24a9a14dfa fix various small nits 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
Ralf Jung 55438fe5bf unify the way we intercept missing MIR and C ABI calls; only intercept C ABI calls if MIR is missing 2017-05-30 10:41:38 -07:00
Ralf Jung 14b16dcf45 use proper span for TLS dtors; fix some nits 2017-05-30 10:41:38 -07:00
Ralf Jung a66f359d91 support TLS destructors 2017-05-30 10:41:38 -07:00
Ralf Jung 238211e1b3 implement TLS 2017-05-30 10:41:38 -07:00
Ralf Jung 452cc9b396 handle statics with linkage: initialize them with NULL 2017-05-30 10:41:38 -07:00
Ralf Jung 33d42f4b82 also support writing to stderr 2017-05-30 10:41:38 -07:00
Ralf Jung 1ae01b422b add instructions for how to compile libstd with xargo 2017-05-30 10:41:38 -07:00
Ralf Jung ab90500d8c Make println!("String") work
miri complains about a memory leak when the program terminates.  This may be related to thread-local dtors not running.
2017-05-30 10:41:38 -07:00
Oliver Schneider 53412abe76 Merge pull request #172 from dwrensha/rustup
update for latest nightly rustc
2017-05-30 15:58:25 +02:00
David Renshaw 66495222ab closure_to_fn_coercion has been stabilized 2017-05-30 09:27:50 -04:00