Oliver Schneider
fcf495821e
Get rid of the integer allocation
2017-06-20 14:28:18 +02:00
Ralf Jung
684de68d6c
properly wrap pointer offsets at pointer size
2017-06-05 18:07:26 -07:00
Ralf Jung
f39e015163
check for overflow when doing pointer arithmetic
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
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
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
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
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
33d42f4b82
also support writing to stderr
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
David Renshaw
0641e932bc
implement __rust_allocate_zeroed C ABI function
2017-05-21 15:48:31 -04:00
Oliver Schneider
538c271e05
Address clippy lints
2017-04-26 12:15:42 +02:00
Oliver Schneider
bbeb7216e0
Thinify the fat pointer on virtual function calls
2017-03-23 18:32:57 +01:00
Oliver Schneider
cb867d250a
Fix casting generic functions to concrete function pointers
2017-03-23 17:57:40 +01:00
Oliver Schneider
f4ed482c4d
print
doesn't add a stack frame, so don't write arguments
2017-03-23 17:36:10 +01:00
Oliver Schneider
fb7cc3c164
Fix single field by val tuples
2017-03-23 16:09:36 +01:00
Oliver Schneider
1c9f5ac669
Skip the transmute checks for closure glue
2017-03-23 15:23:53 +01:00
Oliver Schneider
1391c5a10a
Reintroduce fn ptr transmute check
2017-03-23 15:17:02 +01:00
Oliver Schneider
4e83659b1d
Fix manual rust-call impls
2017-03-23 15:07:33 +01:00
Oliver Schneider
d71f24c00f
Fix virtual function calls
2017-03-23 14:57:11 +01:00
Oliver Schneider
ad4f6b920a
Fix virtual function calls
2017-03-23 14:24:02 +01:00
Oliver Schneider
d70b79c778
Refactor function calls
2017-03-23 13:36:13 +01:00
Oliver Schneider
0255a51468
Fix function pointer calls
2017-03-23 10:04:08 +01:00
Oliver Schneider
caed365dbe
Refactor drop into its own module and fix Vec
2017-03-22 18:31:41 +01:00
Oliver Schneider
3ef0b0de2c
Dropping slices works again
2017-03-22 17:51:43 +01:00
Oliver Schneider
c409079442
Dropping trait objects works again
2017-03-22 17:48:16 +01:00
Oliver Schneider
9e4e6cdb5c
Dropping arrays works again
2017-03-22 17:32:20 +01:00
Oliver Schneider
7c12ebc78d
Roll our own MIR for dropping arrays.
2017-03-22 16:16:23 +01:00
Oliver Schneider
030f00a8a1
Fix drop terminator
2017-03-22 14:19:29 +01:00
Oliver Schneider
26c3335dbf
Closures work again
2017-03-22 13:13:52 +01:00
Oliver Schneider
dc1b0fb436
Compiles again
2017-03-21 13:53:55 +01:00
Scott Olson
0ca0676abd
Merge pull request #146 from oli-obk/peephole1
...
[Peephole Optimization 1/n] Don't allocate for structs with a single primval field
2017-03-14 09:57:02 -07:00
Oliver Schneider
adb3fbb285
Add a method that hides the lifetime erasing boilerplate
2017-03-14 11:12:59 +01:00
Oliver Schneider
da6f136997
I say we take off and nuke the lifetimes from orbit
2017-03-14 10:49:22 +01: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
2282e6b582
represent single field structs as their single field
2017-02-24 11:04:13 +01:00
Oliver Schneider
35502fd47d
rustup
2017-02-24 10:39:55 +01:00
Oliver Schneider
ac71d6f345
don't duplicate field access logic, always go through lvalue_field
2017-02-14 10:19:19 +01:00
Oliver Schneider
a727ceb7e9
fast path for zsts
2017-02-14 10:19:18 +01:00
Scott Olson
68daab974d
Move relevant code into "traits" module.
2017-02-10 03:23:04 -08:00
Oliver Schneider
06a02187ba
move drop code into its own file
2017-02-09 18:12:59 +01:00