David Renshaw
49fb43f293
use type_align() and type_size() instaed of size_and_align_of_dst()
2017-06-06 10:29:53 -04:00
David Renshaw
c8be312933
fix issue 184 by marking the destination as a packed struct
2017-06-06 09:49:34 -04:00
Oliver Schneider
58a46392c1
Merge pull request #185 from RalfJung/pointers
...
Various pointer-related things
2017-06-06 11:01:50 +02:00
Ralf Jung
91b93bc701
less strict kind test for pointer operations
2017-06-05 18:23:25 -07:00
Ralf Jung
684de68d6c
properly wrap pointer offsets at pointer size
2017-06-05 18:07:26 -07:00
Ralf Jung
7bfda59fe2
don't bother inserting integer relocations into the relocation table
2017-06-05 17:17:16 -07: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
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