Commit Graph

76 Commits

Author SHA1 Message Date
Oliver Schneider 51ff9fdaf6 deallocate all locals on function exit and transitively freeze constants through pointers 2016-11-18 10:05:55 +01:00
Oliver Schneider fd68670c0a merge closures and function and implement some closure vtable cases 2016-11-15 17:19:37 +01:00
Oliver Schneider 64155ffd10 implement fn item -> trait object conversion 2016-11-15 16:32:21 +01:00
Oliver Schneider 1c5c6cd078 allow zsts in the zero case of a nullable pointer optimized enum 2016-11-15 16:15:17 +01:00
Oliver Schneider 5ee75c0805 don't print in the binop tests 2016-11-15 15:24:22 +01:00
Oliver Schneider 4748587a77 fix creation of simd types 2016-11-15 15:23:19 +01:00
Oliver Schneider e2091ff934 add more atomic intrinsics 2016-11-15 15:19:38 +01:00
Oliver Schneider f77a0ab10b fix writing int->ptr transmuted primvals to memory 2016-11-15 15:18:49 +01:00
Oliver 'ker' Schneider d42a7d021d fix null optimizations for smaller than pointer enums
fixes #76
2016-11-11 13:10:47 +01:00
Oliver 'ker' Schneider 921f5af1fe ensure that integers cast to pointers will never point at a valid alloc, not even the zst alloc 2016-11-10 19:20:11 +01:00
Scott Olson 33b1676bda Merge pull request #75 from oli-obk/master
implement more drop stuff
2016-11-06 01:29:14 -08:00
Paul Lietar 86062ef930 Read discriminant as a signed integer if specified by layout.
This ensures it gets sign extended correctly.

Fixes #78
2016-11-05 15:41:19 +00:00
Oliver Schneider 07c752cc82 fix the block processing for the drop_in_place intrinsic 2016-11-04 17:55:06 +01:00
Oliver Schneider 893f16389e run drop on array elements 2016-11-04 17:34:33 +01:00
Oliver Schneider 5ef7924aa9 call drop for all elements of an owned slice 2016-11-04 16:51:43 +01:00
Oliver Schneider c4c8764f53 generate a drop method pointer in the vtable and process it 2016-11-04 16:38:04 +01:00
Oliver Schneider 0420c27c8e fix drop ordering and forward fat pointer extras to fields
this doesn't yet use the fat pointer extras
2016-11-04 15:55:05 +01:00
Oliver Schneider 73d7f1d41b implement drop for NonZero optimized enums 2016-11-04 09:34:54 +01:00
Oliver Schneider ff95efc525 Revert "Fix tests broken by std::vec::SetLenOnDrop."
This reverts commit 366c793306.
2016-11-04 09:15:59 +01:00
Oliver Schneider 2a35b3e322 call user defined drop impls 2016-11-03 17:32:37 +01:00
Oliver Schneider e406099348 sanity check that boxes of zsts don't deallocate the zst allocation 2016-11-03 16:01:14 +01:00
Scott Olson c938553a10 Add test for 39bb1254d. 2016-10-18 21:45:11 -06:00
Scott Olson 5f65ee2713 Refactor in preparation for Value locals.
Turning locals into `Vec<Value>` will allow writing `PrimVal` results
directly into the locals array without creating `memory::Allocation`s
for every local.

This will entail passing around a generalized kind of `Lvalue` instead
of `Pointer`s for the destinations of operations. Replacing `Pointer`
with `Lvalue` is mostly done with this commit, but expanding `Lvalue`
will come later.

This commit turns every local from `Pointer` into `Value::ByRef(ptr)`.
Locals which are `Value::ByVal(prim_val)` will come in a later commit.
2016-10-14 03:31:45 -06:00
Oliver Schneider c9914cd3ae fix enum variants with multiple fields 2016-09-30 10:45:52 +02:00
Oliver Schneider f1c5bf2281 fix intrinsics and implement more of them 2016-09-29 15:58:26 +02:00
Oliver Schneider 1c18f6ddfa implement slice patterns 2016-09-28 18:22:09 +02:00
Oliver Schneider 5b89f3fb94 implement Arc<T> -> Arc<Trait> unsizing 2016-09-27 18:01:33 +02:00
Oliver Schneider d6f1ba89ce fix matching on chars
fixes #63
2016-09-27 11:10:25 +02:00
Oliver Schneider e28f873756 actually error on failing miri-pass tests
+ remove a test that never succeeded
2016-09-26 17:49:53 +02:00
Oliver Schneider b3190359df refactor away get_fat_ptr 2016-09-23 15:48:23 +02:00
Oliver Schneider 2282289ad5 refactor away intermediate allocations, stage1 2016-09-23 10:27:14 +02:00
Oliver Schneider 38748fa615 refactor away IntegerPtr 2016-09-22 15:47:16 +02:00
Oliver Schneider 0f578f0d2e fully implement size_of_val and add various tests that now succeed 2016-09-22 13:00:43 +02:00
Oliver Schneider 145cbf844c enable A<Struct> -> A<Trait> downcasting 2016-09-21 18:00:04 +02:00
Oliver Schneider 21e924975d only split the Fn* arguments in case of closures and function pointers 2016-09-21 15:57:13 +02:00
Oliver Schneider 16f6ae3933 fix calling Fn closures as FnOnce closures 2016-09-20 18:31:55 +02:00
Oliver Schneider 63cc7fc9e8 fix miri backtrace panic 2016-09-20 12:51:48 +02:00
Scott Olson 814efe3b05 option_eq test passes now since casts are implemented. 2016-09-19 02:16:51 -06:00
Oliver Schneider 562c64d86a add some sanity tests 2016-09-15 16:32:30 +02:00
Scott Olson 366c793306 Fix tests broken by std::vec::SetLenOnDrop. 2016-09-13 20:14:07 -06:00
Oliver Schneider 5c47e3dbd8 only allow the modification of static mut or statics with interior mutability 2016-09-11 11:02:45 +02:00
Oliver Schneider bcda724c43 closures don't work yet 2016-09-09 15:44:35 +02:00
Oliver Schneider 00c551c5f0 implement calling methods through trait objects 2016-09-09 12:51:14 +02:00
Oliver Schneider 51ce4a2584 use byteorder's write_f{32,64} instead of transmuting 2016-07-06 11:51:32 +02:00
Oliver Schneider 4b831569f6 implement floats by running the ops on the host architecture 2016-07-05 09:08:24 +02:00
Oliver Schneider 594f1d79da optimize all ZST allocations into one single allocation 2016-07-01 13:09:17 +02:00
Oliver Schneider 2dbd30fa51 implement char handling 2016-06-21 09:35:20 +02:00
Oliver Schneider ed4af21605 fix master 2016-06-20 12:33:54 +02:00
Oliver Schneider a1082b9b1a Merge remote-tracking branch 'origin/master' into oflo 2016-06-20 12:33:09 +02:00
Oliver Schneider e90ee1674a fix comparing of function pointers 2016-06-20 10:35:15 +02:00