Ralf Jung
c4ce8c114b
make InterpResult a dedicated type to avoid accidentally discarding the error
2024-10-01 21:45:35 +02:00
Michael Goulet
c682aa162b
Reformat using the new identifier sorting from rustfmt
2024-09-22 19:11:29 -04:00
Stuart Cook
3ba12756d3
Rollup merge of #130235 - compiler-errors:nested-if, r=michaelwoerister
...
Simplify some nested `if` statements
Applies some but not all instances of `clippy::collapsible_if`. Some ended up looking worse afterwards, though, so I left those out. Also applies instances of `clippy::collapsible_else_if`
Review with whitespace disabled please.
2024-09-12 20:37:16 +10:00
Jubilee
a31a8fe0cf
Rollup merge of #130114 - eduardosm:needless-returns, r=compiler-errors
...
Remove needless returns detected by clippy in the compiler
2024-09-11 15:53:22 -07:00
Michael Goulet
954419aab0
Simplify some nested if statements
2024-09-11 13:45:23 -04:00
Eduardo Sánchez Muñoz
0b20ffcb63
Remove needless returns detected by clippy in the compiler
2024-09-09 13:32:22 +02:00
Ralf Jung
cbdcbf0d6a
interpret: reset provenance on typed copies
2024-09-08 16:53:23 +02:00
Strophox
7fde02ea53
enable Miri to pass const pointers through FFI
...
Co-authored-by: Ralf Jung <post@ralfj.de >
2024-08-30 16:05:53 +02:00
Ralf Jung
58dcd1c2e6
use the new Box methods in the interpreter
2024-08-14 14:32:17 +02:00
Nicholas Nethercote
84ac80f192
Reformat use declarations.
...
The previous commit updated `rustfmt.toml` appropriately. This commit is
the outcome of running `x fmt --all` with the new formatting options.
2024-07-29 08:26:52 +10:00
Strophox
b512bf6f77
add as_ptr to trait AllocBytes, fix 2 impls; add pub fn get_bytes_unchecked_raw in allocation.rs; add pub fn get_alloc_bytes_unchecked_raw[_mut] in memory.rs
2024-06-21 12:50:24 +02:00
Ralf Jung
eefb3ac8af
interpret: better error when we ran out of memory
2024-06-17 12:04:52 +02:00
Ralf Jung
869306418d
miri: avoid making a full copy of all new allocations
2024-05-27 23:33:54 +02:00
Strophox
38181cba79
remove trait bounds on AllocBytes
2024-05-03 15:00:37 +02:00
Strophox
235770c851
Cow::from(&*...) changed to Cow::Owned(Vec::from(...))
2024-05-03 13:47:16 +02:00
Strophox
47e2cc2ea1
generalize adjust_from_tcx
2024-05-03 13:47:16 +02:00
Nicholas Nethercote
6ce258f657
Remove extern crate rustc_macros from rustc_middle.
2024-04-29 11:19:16 +10:00
Ralf Jung
7be47b219d
interpret/allocation: fix aliasing issue in interpreter and refactor getters a bit
...
- rename mutating functions to be more scary
- add a new raw bytes getter
2024-03-15 15:58:37 +01:00
Nicholas Nethercote
2ea7a37e11
Add DiagCtxt::delayed_bug.
...
We have `span_delayed_bug` and often pass it a `DUMMY_SP`. This commit
adds `delayed_bug`, which matches pairs like `err`/`span_err` and
`warn`/`span_warn`.
2024-01-10 07:33:07 +11:00
Nicholas Nethercote
99472c7049
Remove Session methods that duplicate DiagCtxt methods.
...
Also add some `dcx` methods to types that wrap `TyCtxt`, for easier
access.
2023-12-24 08:05:28 +11:00
Ralf Jung
cb86303342
ctfe interpreter: extend provenance so that it can track whether a pointer is immutable
2023-12-07 17:46:36 +01:00
Nicholas Nethercote
5d1d384443
Rename HandlerInner::delay_span_bug as HandlerInner::span_delayed_bug.
...
Because the corresponding `Level` is `DelayedBug` and `span_delayed_bug`
follows the pattern used everywhere else: `span_err`, `span_warning`,
etc.
2023-12-02 09:01:19 +11:00
Ralf Jung
9c417a4ad4
interpret: clean up AllocBytes
2023-10-14 12:29:16 +02:00
ouz-a
c41339a52f
Convert Const to Allocation in smir
2023-08-09 15:00:00 +03:00
Ralf Jung
7767cbb3b0
const validation: point at where we found a pointer but expected an integer
2023-08-02 18:51:50 +02:00
Ralf Jung
d127600511
add some sanity checks in write_immediate_no_validate
2023-07-25 14:30:58 +02:00
Deadbeef
4f83717cf7
Use translatable diagnostics in rustc_const_eval
2023-06-01 14:45:18 +00:00
Nilstrieb
cab94d29ff
fixup! Improve `Allocation::hash
2023-04-09 23:23:33 +02:00
Nilstrieb
6fceb0f645
Improve `Allocation::hash
...
Exhaustively destructure and ignore `()`
2023-04-09 23:22:14 +02:00
Rémy Rakic
a857ba25f9
address review comments
...
Move tests and limit the init mask's structures/fields visibility.
2023-03-28 13:22:01 +00:00
Rune Tynan
f26b0a2948
Format
2023-03-01 20:27:03 -05:00
Rune Tynan
3a87a18857
Make zeroed return an Option
2023-02-28 15:39:17 -05:00
Rune Tynan
936b567d2e
Minimal changes to make miri work
2023-02-20 13:50:20 -05:00
Rune Tynan
871c1dee33
Remove unused lifetime
2023-02-20 13:47:13 -05:00
Rune Tynan
b2455dc91c
Add mentioned from_raw_bytes constructor
2023-02-20 13:47:11 -05:00
Rune Tynan
6f407d67b8
Allow non-Box allocations in preparation for aligned const allocations for miri. Credit to emarteca for the code.
2023-02-20 13:47:09 -05:00
Oli Scherer
46ba1545b8
Update documentation
2022-11-30 12:17:54 +00:00
Ralf Jung
77071f7e3a
interpret: remove PartialOrd from a bunch of types that do not have or need a sensible order
2022-11-26 10:10:34 +01:00
Ralf Jung
4101889786
interpret: use Either over Result when it is not representing an error condition
2022-11-18 10:18:32 +01:00
Ralf Jung
68af46c112
assert that we are (de)seiralizing ProvenanceMap correctly
2022-11-14 18:26:40 +01:00
Ralf Jung
edbbb10477
make uninit_mask a unit test
2022-11-06 17:26:52 +01:00
Ralf Jung
c3a7ca1125
move InitMask to its own module
2022-11-06 14:17:10 +01:00
Ralf Jung
3477645a23
dont debug-print allocations, that's too verbose
2022-11-06 14:17:10 +01:00
Ralf Jung
2cef9e3d19
interpret: support for per-byte provenance
2022-11-06 14:17:10 +01:00
Ralf Jung
2e172473da
interpret: make read-pointer-as-bytes *always* work in Miri
...
and show some extra information when it happens in CTFE
2022-08-27 18:37:44 -04:00
Ralf Jung
e63a625711
interpret: rename relocation → provenance
2022-08-27 14:11:19 -04:00
Ralf Jung
30fa931f92
make read_immediate error immediately on uninit, so ImmTy can carry initialized Scalar
2022-08-26 13:20:57 -04:00
Ralf Jung
2e52fe01cf
remove some now-unnecessary parameters from check_bytes
2022-08-26 13:20:56 -04:00
Ralf Jung
0ec3269db8
interpret: rename Tag/PointerTag to Prov/Provenance
...
Let's avoid using two different terms for the same thing -- let's just call it "provenance" everywhere.
In Miri, provenance consists of an AllocId and an SbTag (Stacked Borrows tag), which made this even more confusing.
2022-07-19 15:38:32 -04:00
Ralf Jung
874a130ca0
get rid of MemPlaceMeta::Poison
...
MPlaceTy::dangling still exists, but now it is only called in places that
actually conceptually allocate something new, so that's fine.
2022-07-13 10:22:59 -04:00