Commit Graph

612 Commits

Author SHA1 Message Date
Oliver Schneider e22cceaceb allow using tuple variant names as function handles in presence of NonZero optimizations 2017-01-23 12:56:40 +01:00
Oliver Schneider 04eadedb28 allow using tuple variant names as function handles 2017-01-23 12:56:40 +01:00
Scott Olson 684f757139 Make clippy-suggested fixes. 2017-01-22 00:19:35 -08:00
Scott Olson 53fa985fc4 Update for changes in rustc. 2017-01-16 19:37:53 -08:00
Scott Olson ac2bf50f9d Use the new field init shorthand. 2017-01-16 18:45:30 -08:00
Oliver Schneider 1838ef6bda rustup to 2017-01-12 2017-01-13 17:16:19 +01:00
Oliver Schneider e7ef118138 fix copy pasted code 2017-01-12 12:43:37 +01:00
Oliver Schneider 927844ab24 priroda required functions 2017-01-12 12:43:37 +01:00
Oliver Schneider 8084d60f54 add test for unions and remove needles forced alloc 2017-01-12 12:43:37 +01:00
Oliver Schneider 374232c832 add memrchr libc function 2017-01-12 12:43:37 +01:00
Oliver Schneider 24870428a7 more intrinsics 2017-01-12 12:43:37 +01:00
Oliver Schneider 0595f95460 remove old comment 2017-01-12 11:27:04 +01:00
Oliver Schneider a58170a4c6 prevent intrinsics from creating uninhabited types 2017-01-12 10:37:14 +01:00
Oliver Schneider b5f824fd9c fix ICE when transmuting inhabited types to uninhabited 2017-01-12 09:59:00 +01:00
Oliver Schneider 753dbcf158 add a test for dereferencing a pointer to a ! 2017-01-12 09:41:36 +01:00
Oliver Schneider 7c486416cb allow the use of tuple struct constructors as functions 2017-01-12 08:52:22 +01:00
Oliver Schneider 32cd8efb97 re-enable auxiliary tests for the host only 2017-01-12 08:40:16 +01:00
Oliver Schneider 3a658e09e8 rustup (i128) 2017-01-12 08:28:42 +01:00
Scott Olson 6d1c47b6ef Update for changes in rustc. 2016-12-21 17:23:28 -08:00
Scott Olson 9093188a5c Clean up useless pub use. 2016-12-21 17:15:03 -08:00
Scott Olson 2a5029ed6d Update MIR passes to match rustc. 2016-12-18 23:31:23 -08:00
Scott Olson b233ada529 Change Option<Value> to Value, using ByVal(Undef).
This job isn't quite finished because it caused me to discover bugs
related to reading `ByVal(Undef)` when a `ByValPair` is expected, e.g.
for a fat pointer. This wasn't a problem with the `None` of
`Option<Value>`, but I realized an equivalent bug existed even then,
since you could transmute a `u64` like `ByVal(Bytes(42))` to a fat
pointer type on 32-bit targets.

Likewise, you could transmute a fat pointer to `u64` and get panics
related to expecting `ByVal` but finding `ByValPair`, so the problem
goes both ways.
2016-12-18 20:59:01 -08:00
Scott Olson 459a27d6bd Reading undef local/globals gets PrimVal::Undef.
This fixes #95.
2016-12-17 03:36:22 -08:00
Scott Olson 6b7c68bec2 Rename bits to bytes for consistency. 2016-12-17 03:19:32 -08:00
Scott Olson 4fe41ad8d5 Refactor PrimVal::bits() out of existence. 2016-12-17 03:09:57 -08:00
Scott Olson d63ab5f8c3 Refactor PrimVal::relocation out of existence. 2016-12-17 01:47:24 -08:00
Scott Olson 29e690fe14 Handle writing undefined PrimVals and mask properly. 2016-12-17 01:36:02 -08:00
Scott Olson 0591683b73 Stop before trans so I can test non-x86_64 targets.
I had problems when it tried to link outputs for targets other than my
host.

This re-breaks tests with auxiliary builds. I'm not sure what to do
about those right now.
2016-12-16 23:47:43 -08:00
Scott Olson 3bad50e114 Rename PrimVal::from_{u,}int to from_{u,i}64. 2016-12-16 22:11:44 -08:00
Scott Olson f83c45e367 Turn invalid panics into Results and rename fns. 2016-12-16 22:08:40 -08:00
Scott Olson 33f97feafb Shorten PrimVal::Undefined to PrimVal::Undef. 2016-12-16 22:03:34 -08:00
Scott Olson e615f671ce Remove potentially wrong PartialEq from PrimVal. 2016-12-16 22:03:34 -08:00
Scott Olson 67e1627a55 Rename PrimVal::Pointer to PrimVal::Ptr.
Also fill out the PrimVal doc comments.
2016-12-16 22:03:34 -08:00
Scott Olson b36a83171b Turn PrimVal into an enum including Undefined.
This is step 1 of a refactoring to fix #95. The `Undefined` variant is
so far unused and the old `bits` and `relocation` fields are emulated
with two new temporary methods. There should be no functional change due
to this commit.
2016-12-16 22:03:34 -08:00
Scott Olson 6ec3d65068 Revert "Revert "rustup to rustc 1.15.0-dev (ace092f56 2016-12-13)"" 2016-12-16 17:10:16 -08:00
Scott Olson 0deabf9c00 Revert "rustup to rustc 1.15.0-dev (ace092f56 2016-12-13)" 2016-12-15 01:16:06 -08:00
Oliver Schneider 0a79304fcb improve variable name 2016-12-15 09:58:57 +01:00
Oliver Schneider fd0c21eeee check that the null terminator is defined and not part of a pointer 2016-12-15 09:58:41 +01:00
Oliver Schneider 24203602e1 remove unused import 2016-12-15 09:56:40 +01:00
Oliver Schneider 9ec97bac71 enable auxiliary builds 2016-12-14 17:06:36 +01:00
Oliver Schneider 8b8c7430f1 re-use mir-opt compiletest instead of rolling our own 2016-12-14 17:06:36 +01:00
Oliver Schneider 69fa3ebff6 rustup to rustc 1.15.0-dev (ace092f56 2016-12-13) (always_encode_mir) 2016-12-14 17:06:23 +01:00
Scott Olson ee0dc452aa Move binop functions to operator module. 2016-12-10 17:03:12 -08:00
Scott Olson e0013b2ae4 Clean up vtable imports. 2016-12-10 16:58:13 -08:00
Scott Olson 636b476eda Rename intrinsics to intrinsic for consistency. 2016-12-10 16:27:45 -08:00
Scott Olson 1af63171f8 Split primval into operator and value. 2016-12-10 16:23:07 -08:00
Scott Olson bc5bd71922 Add support for untagged unions. 2016-12-07 23:25:47 -08:00
Scott Olson a64d30b2c1 Replace some stray try!s with ?. 2016-12-07 22:56:28 -08:00
Scott Olson 829d97bde2 Move lvalue-related methods to lvalue mod. 2016-12-07 22:01:11 -08:00
Scott Olson 5ce6514f23 Dump allocations within PrimVal pointers. 2016-12-07 22:00:46 -08:00