Ralf Jung
a2bcafa500
interpret: refactor projection code to work on a common trait, and use that for visitors
2023-07-25 14:30:58 +02:00
Ralf Jung
a593de4fab
interpret: support projecting into Place::Local without force_allocation
2023-07-24 15:35:47 +02:00
David Tolnay
5bbf0a8306
Revert "Auto merge of #113166 - moulins:ref-niches-initial, r=oli-obk"
...
This reverts commit 557359f925
, reversing
changes made to 1e6c09a803
.
2023-07-21 22:35:57 -07:00
Moulins
76c49aead6
support non-null pointer niches in CTFE
2023-07-21 03:31:45 +02:00
Mahdi Dibaiee
e55583c4b8
refactor(rustc_middle): Substs -> GenericArg
2023-07-14 13:27:35 +01:00
Deadbeef
f964b46451
improve debug message by eagerly translating
2023-06-01 14:45:19 +00:00
Deadbeef
4f83717cf7
Use translatable diagnostics in rustc_const_eval
2023-06-01 14:45:18 +00:00
Oli Scherer
05eae08233
Remove const eval limit and implement an exponential backoff lint instead
2023-05-31 10:24:17 +00:00
John Kåre Alsaker
54b582a0e8
Finish move of query.rs
2023-05-17 01:57:21 +02:00
Tomasz Miąsko
67f455afe1
Suppress "erroneous constant used" for constants tainted by errors
...
When constant evaluation fails because its MIR is tainted by errors,
suppress note indicating that erroneous constant was used, since those
errors have to be fixed regardless of the constant being used or not.
2023-05-15 00:00:00 +00:00
Ralf Jung
25e9b79060
interpret: fail more gracefully on uninit unsized locals
2023-04-28 14:42:03 +02:00
Ralf Jung
91d25168cd
interpret: rename Pointer::from_addr → from_addr_invalid
2023-02-14 14:55:50 +01:00
Ralf Jung
2900ba15b3
miri: fix ICE when running out of address space
2023-02-07 13:26:31 +01:00
Ralf Jung
ff38c2891d
fix a typo
2022-11-17 21:13:23 +01:00
Ralf Jung
1115ec601a
cleanup and dedupe CTFE and Miri error reporting
2022-11-16 10:13:29 +01:00
Ralf Jung
2c15b3c08c
less unsupported errors in Miri, and clarifying comments
2022-11-07 23:54:49 +01:00
Ralf Jung
fd59d44f58
make const_err a hard error
2022-10-07 18:08:49 +02: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
3dad266f40
consistently use VTable over Vtable (matching stable stdlib API RawWakerVTable)
2022-07-20 17:12:07 -04:00
Ralf Jung
fe00573324
make use of symbolic vtables in interpreter
2022-07-20 17:12:04 -04:00
Ralf Jung
da5e4d73f1
add a Vtable kind of symbolic allocations
2022-07-20 16:57:31 -04:00
Ralf Jung
27b7b3dcd6
interpret: use AllocRange in UninitByteAccess
...
also use nice new format string syntax in interpret/error.rs
2022-07-06 10:55:06 -04:00
bors
5b8cf49c51
Auto merge of #98206 - eggyal:align-to-chalk-folding-api, r=jackh726
...
Split TypeVisitable from TypeFoldable
Impl of rust-lang/compiler-team#520 following MCP approval.
r? `@ghost`
2022-07-06 05:48:11 +00:00
Alan Egerton
9ffdc2de8c
impl TypeVisitable in type traversal macros
2022-07-05 22:25:33 +01:00
Ralf Jung
46956f76ca
adjust dangling-int-ptr error message
2022-07-05 08:08:24 -04:00
Ralf Jung
0832d1d022
more use of format! variable capture
...
Co-authored-by: Joe ST <joe@fbstj.net>
2022-07-02 13:37:24 -04:00
Ralf Jung
c36572c11e
add AllocRange Debug impl; remove redundant AllocId Display impl
2022-07-02 11:41:16 -04:00
Ralf Jung
238501c137
interpret: adjust error from constructing an invalid value
2022-06-29 11:26:24 -04:00
Ralf Jung
47d11a8483
interpret: better control over whether we read data with provenance, and implicit provenance stripping where possible
2022-06-05 10:13:34 -04:00
Oli Scherer
0d88631059
Add the transmute and asm checks to typeck as deferred checks
2022-05-24 16:28:57 +00:00
b-naber
96b36d6eb2
use GlobalId in eval_to_valtree query and introduce query for valtree_to_const_val
2022-05-16 15:58:15 +02:00
Ralf Jung
38004b72bc
interpret: err instead of ICE on size mismatches in to_bits_or_ptr_internal
2022-04-07 16:24:48 -04:00
mark
bb8d4307eb
rustc_error: make ErrorReported impossible to construct
...
There are a few places were we have to construct it, though, and a few
places that are more invasive to change. To do this, we create a
constructor with a long obvious name.
2022-03-16 10:35:24 -05:00
est31
3bf9124f14
Support other types of pluralization in pluralize macro
2022-03-15 15:37:49 +01:00
Ralf Jung
63ed8e41ce
adjust offset_from logic: check that both pointers are in-bounds
2022-03-10 18:59:58 -05:00
bors
4566094913
Auto merge of #94512 - RalfJung:sdiv-ub, r=oli-obk
...
Miri/CTFE: properly treat overflow in (signed) division/rem as UB
To my surprise, it looks like LLVM treats overflow of signed div/rem as UB. From what I can tell, MIR `Div`/`Rem` directly lowers to the corresponding LLVM operation, so to make that correct we also have to consider these overflows UB in the CTFE/Miri interpreter engine.
r? `@oli-obk`
2022-03-03 12:56:24 +00:00
mark
e489a94dee
rename ErrorReported -> ErrorGuaranteed
2022-03-02 09:45:25 -06:00
Ralf Jung
6739299d18
Miri/CTFE: properly treat overflow in (signed) division/rem as UB
2022-03-01 20:39:51 -05:00
Eduard-Mihai Burtescu
b7e95dee65
rustc_errors: let DiagnosticBuilder::emit
return a "guarantee of emission".
2022-02-23 06:38:52 +00:00
Guillaume Gomez
c358ffe7b3
Implement LowerHex on Scalar to clean up their display in rustdoc
2022-02-20 16:43:21 +01:00
Ralf Jung
56b7d5fc49
better name for AdjustForForeignAbiError error variant in InterpError
2021-12-20 22:37:15 +01:00
Ralf Jung
11fb22d83a
CTFE eval_fn_call: use FnAbi to determine argument skipping and compatibility
2021-12-20 22:37:12 +01:00
Aaron Hill
070bf94a6f
Remove in_band_lifetimes
from rustc_middle
...
See #91867
This was mostly straightforward. In several places, I take advantage
of the fact that lifetimes are non-hygenic: a macro declares the
'tcx' lifetime, which is then used in types passed in as macro
arguments.
2021-12-15 19:50:43 -05:00
b-naber
0b32cf3a8d
remove static_assert_size on InterpError
2021-12-01 12:12:39 +01:00
b-naber
ff448cfcee
implement version of normalize_erasing_regions that doesn't assume value is normalizable
2021-12-01 12:12:38 +01:00
Matthias Krüger
0a5640b55f
use matches!() macro in more places
2021-11-06 16:13:14 +01:00
Ralf Jung
c5a68cf0a6
add dedicated error variant for writing the discriminant of an uninhabited enum variant
2021-10-14 10:03:20 -04:00
Frank Steffahn
bf88b113ea
Fix typos “a”→“an”
2021-08-22 15:35:11 +02:00
Ralf Jung
b7b5091378
typo
...
Co-authored-by: Oli Scherer <github35764891676564198441@oli-obk.de>
2021-07-31 11:30:35 +02:00
Ralf Jung
14de6ec8d8
CTFE: throw unsupported error when partially overwriting a pointer
2021-07-31 11:30:33 +02:00