Commit Graph

135 Commits

Author SHA1 Message Date
Oliver Schneider
fcf495821e
Get rid of the integer allocation 2017-06-20 14:28:18 +02:00
Ralf Jung
e1562fbe71 comments 2017-06-06 10:15:54 -07:00
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
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
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
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
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
David Renshaw
ca8347a1ff update for upstream ParamEnv changes 2017-06-02 21:00:35 -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
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
48662d5199 update for upstream changes with ty::ParamEnv 2017-05-23 23:40:39 -04:00
David Renshaw
0641e932bc implement __rust_allocate_zeroed C ABI function 2017-05-21 15:48:31 -04:00
Oliver Schneider
da3860a293 Address things complained about by clippy 2017-05-05 10:34:38 +02:00
Oliver Schneider
07229d6305 Rustup to rustc 1.19.0-nightly (2d4ed8e0c 2017-05-03) 2017-05-04 17:42:43 +02:00
Oliver Schneider
538c271e05 Address clippy lints 2017-04-26 12:15:42 +02:00
David Renshaw
d666bd7e62 update for latest rustc nightly: type_needs_drop_given_env() and type_contents() are gone 2017-04-23 13:45:04 -04:00
Oliver Schneider
fdeee8fb59 Cleanup the diff 2017-03-29 09:10:05 +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