Ralf Jung
89ac57db4d
move required_consts check to general post-mono-check function
2023-09-14 22:30:42 +02:00
Camille GILLOT
054ed8e7eb
Introduce Machine::POST_MONO_CHECKS.
2023-09-12 20:17:52 +00:00
Ralf Jung
fa5f13775a
interpret: make MemPlace, Place, Operand types private to the interpreter
2023-09-04 17:53:38 +02:00
Ralf Jung
6d1ce9bd13
storage_live: avoid computing the layout unless necessary
2023-08-30 13:46:55 +02:00
Ralf Jung
f87e91de7d
unify passing of sized and unsized function arguments :-)
2023-08-30 13:46:55 +02:00
Ralf Jung
a09df43d9f
move marking-locals-live out of push_stack_frame, so it happens with argument passing
...
this entirely avoids even creating unsized locals in Immediate::Uninitialized state
2023-08-30 13:46:54 +02:00
Ralf Jung
bdd5855b8e
interpret: fix projecting into an unsized field of a local
...
new invariant: Place::Local never refers to something unsized
2023-08-30 13:43:34 +02:00
Ralf Jung
beeb2b13cc
miri/diagnostics: don't forget to print_backtrace when ICEing on unexpected errors
...
then also use the new helper in a few other places
2023-08-27 15:42:25 +02:00
Ralf Jung
4c53783f3c
when terminating during unwinding, show the reason why
2023-08-24 13:28:26 +02:00
Ralf Jung
788fd44a3b
interpret/miri: call panic_cannot_unwind lang item instead of hard-coding the same message
2023-08-20 15:52:40 +02:00
Deadbeef
e6b423aebb
Remove constness
from ParamEnv
2023-07-27 15:50:42 +00:00
Matthias Krüger
c64ef5e070
inline format!() args from rustc_codegen_llvm to the end (4)
...
r? @WaffleLapkin
2023-07-25 23:20:28 +02:00
Ralf Jung
a593de4fab
interpret: support projecting into Place::Local without force_allocation
2023-07-24 15:35:47 +02:00
Mahdi Dibaiee
e55583c4b8
refactor(rustc_middle): Substs -> GenericArg
2023-07-14 13:27:35 +01:00
Mark Rousskov
cc907f80b9
Re-format let-else per rustfmt update
2023-07-12 21:49:27 -04:00
Ralf Jung
dd453a6a99
miri: protect Move() function arguments during the call
2023-07-11 21:59:01 +02:00
Deadbeef
4f83717cf7
Use translatable diagnostics in rustc_const_eval
2023-06-01 14:45:18 +00:00
bors
23f93a1266
Auto merge of #103877 - oli-obk:const_eval_step_limit, r=fee1-dead
...
Replace const eval limit by a lint and add an exponential backoff warning
The lint triggers at the first power of 2 that comes after 1 million function calls or traversed back-edges (takes less than a second on usual programs). After the first emission, an unsilenceable warning is repeated at every following power of 2 terminators, causing it to get reported less and less the longer the evaluation runs.
cc `@rust-lang/wg-const-eval`
fixes #93481
closes #67217
2023-06-01 05:32:00 +00:00
Oli Scherer
05eae08233
Remove const eval limit and implement an exponential backoff lint instead
2023-05-31 10:24:17 +00:00
lcnr
08d149ca85
EarlyBinder::new -> EarlyBinder::bind
2023-05-29 13:46:10 +02:00
Kyle Matsuda
03534ac8b7
Replace EarlyBinder(x) with EarlyBinder::new(x)
2023-05-28 10:44:50 -06:00
Camille GILLOT
3a423c3feb
Manually add inlined frames in the interpreter stacktrace.
2023-05-25 16:43:14 +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
Kyle Matsuda
82f57c16b7
use EarlyBinder in tcx.(try_)subst_mir_and_normalize_erasing_regions
2023-05-06 22:32:39 -06:00
Maybe Waffle
e496fbec92
Split {Idx, IndexVec, IndexSlice}
into their own modules
2023-04-24 13:53:35 +00:00
Camille GILLOT
b275d2c30b
Remove WithOptconstParam.
2023-04-20 17:48:32 +00:00
Ben Kimock
606ca4da7e
Report a backtrace for memory leaks under Miri
2023-04-16 08:52:00 -04:00
Gary Guo
5cbda2a55e
Fix tools
2023-04-06 09:34:16 +01:00
Gary Guo
0a5dac3062
Add UnwindAction::Terminate
2023-04-06 09:34:16 +01:00
Gary Guo
5e6ed132fa
Add UnwindAction::Unreachable
...
This also makes eval machine's `StackPopUnwind`
redundant so that is replaced.
2023-04-06 09:34:16 +01:00
Camille GILLOT
081bc75743
Assume the frame has all the locals.
2023-03-08 14:40:37 +00:00
Camille GILLOT
8c0cbd8767
Do not ICE when failing to normalize in ConstProp.
2023-03-06 09:28:49 +00:00
Alan Egerton
695072daa6
Remove type-traversal trait aliases
2023-02-22 17:04:58 +00:00
Ralf Jung
b2f58146b9
basic dyn* support for Miri
2023-02-20 15:08:05 +01:00
Oli Scherer
38b7cdf393
Use target instead of machine for mir interpreter integer handling.
...
The naming of `machine` only makes sense from a mir interpreter internals perspective, but outside users talk about the `target` platform
2023-02-15 08:56:18 +00:00
Maybe Waffle
6a28fb42a8
Remove double spaces after dots in comments
2023-01-17 08:09:33 +00:00
Oli Scherer
d66824dbc4
Make alignment checks a future incompat lint
2022-12-15 16:07:28 +00:00
Oli Scherer
7782a2b70d
Remove now-redundant file/line info from const backtraces
2022-12-06 18:59:46 +00:00
Ralf Jung
51ac2af99f
interpret: clobber return place when calling function
2022-12-03 13:37:13 +01:00
Matthias Krüger
820a41580e
Rollup merge of #104564 - RalfJung:either, r=oli-obk
...
interpret: use Either over Result when it is not representing an error condition
r? `@oli-obk`
2022-11-20 18:21:48 +01:00
Dylan DPC
00876c68c4
Rollup merge of #104411 - lcnr:bivariance-nll, r=compiler-errors
...
nll: correctly deal with bivariance
fixes #104409
when in a bivariant context, relating stuff should always trivially succeed. Also changes the mir validator to correctly deal with higher ranked regions.
r? types cc ``@RalfJung``
2022-11-19 11:54:44 +05:30
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
1115ec601a
cleanup and dedupe CTFE and Miri error reporting
2022-11-16 10:13:29 +01:00
lcnr
6aa611a84c
mv utility methods into separate module
2022-11-15 13:50:13 +01:00
lcnr
45f441a7b4
nll: correctly deal with bivariance
2022-11-15 13:34:08 +01:00
Ralf Jung
c78021709a
add is_sized method on Abi and Layout, and use it
2022-11-13 12:23:53 +01:00
Dylan DPC
20528baac4
Rollup merge of #103729 - RalfJung:align-of-val-packed, r=oli-obk
...
interpret: fix align_of_val on packed types
Fixes https://github.com/rust-lang/miri/issues/2632
r? `@oli-obk`
2022-11-01 14:12:26 +05:30
Ralf Jung
d366471e58
interpret: fix align_of_val on packed types
2022-10-29 15:58:32 +02:00
Maybe Waffle
a17ccfa621
Accept TyCtxt
instead of TyCtxtAt
in Ty::is_*
functions
...
Functions in answer:
- `Ty::is_freeze`
- `Ty::is_sized`
- `Ty::is_unpin`
- `Ty::is_copy_modulo_regions`
2022-10-27 15:06:08 +04:00