Camille GILLOT
c5fc2609f0
Rename rustc_mir to rustc_const_eval.
2021-09-07 20:46:26 +02:00
Camille GILLOT
fd9c04fe32
Move the dataflow framework to its own crate.
2021-09-07 19:57:07 +02:00
Eduard-Mihai Burtescu
4ce933f13f
rustc_target: move LayoutOf
to ty::layout
.
2021-09-02 01:17:14 +03:00
Ralf Jung
626605cea0
consistently treat None-tagged pointers as ints; get rid of some deprecated Scalar methods
2021-07-14 18:17:49 +02:00
Ralf Jung
d4f7dd6702
CTFE/Miri engine Pointer type overhaul: make Scalar-to-Pointer conversion infallible
...
This resolves all the problems we had around "normalizing" the representation of a Scalar in case it carries a Pointer value: we can just use Pointer if we want to have a value taht we are sure is already normalized.
2021-07-14 18:17:46 +02:00
Aaron Hill
7e5a88a56c
Combine individual limit queries into single limits
query
2021-07-04 13:02:51 -05:00
Aaron Hill
ff15b5e2c7
Query-ify global limit attribute handling
2021-07-04 12:33:14 -05:00
Smitty
524e575bb4
Support allocation failures when interperting MIR
...
Note that this breaks Miri.
Closes #79601
2021-06-29 19:08:26 -04:00
Smitty
044b3620e7
Move some hard error logic to InterpError
2021-06-16 18:23:34 -04:00
Smitty
4fe4ff95f6
Use better error message for hard errors in CTFE
...
Currently the same message is used for hard errors and soft errors. This
makes hard errors use a message that indicates the reality of the
situation correctly, since usage of the constant is never allowed when
there was a hard error evaluating it.
2021-06-15 19:16:10 -04:00
Rémy Rakic
c31ca9a42c
const eval errors: display the current item instance if there are generics involved
2021-05-28 00:17:47 +02:00
Ralf Jung
585141b219
support creating mutable allocations from byte slices
2021-05-23 12:37:16 +02:00
Hameer Abbasi
c3ec0add8b
Add allocation information to undefined behaviour errors.
2021-03-31 07:21:08 +00:00
klensy
08b1e8004b
fix review
2021-02-25 04:21:12 +03:00
klensy
c75c4a579b
replaced some map_or with map_or_else
2021-02-24 02:43:35 +03:00
bors
e7c23ab933
Auto merge of #82124 - tmiasko:op-ty-ref, r=oli-obk
...
Pass large interpreter types by reference, not value
r? `@ghost`
2021-02-20 10:20:42 +00:00
Tomasz Miąsko
e190f0d974
Reduce size of InterpErrorInfo to 8 bytes
2021-02-17 08:57:06 +01:00
Tomasz Miąsko
d06a2a368d
Pass MPlaceTy by reference not value
2021-02-16 23:52:05 +01:00
Tomasz Miąsko
fe0c46d07e
Pass PlaceTy by reference not value
2021-02-16 23:52:05 +01:00
Tomasz Miąsko
e915cf45dc
Pass OpTy by reference not value
2021-02-16 23:52:05 +01:00
Ellen
a3e079534d
Heat up the ICE-y error reporting
...
rest in peace match bool <3
2021-02-13 14:42:30 +00:00
Ralf Jung
48f9dbfd59
clean up some const error reporting around promoteds
2021-01-24 13:34:34 +01:00
Ralf Jung
97cae9c555
promoteds in statics may refer to statics
2020-12-20 19:34:29 +01:00
Ralf Jung
06ca7b700c
validate promoteds
2020-12-20 15:54:20 +01:00
Tunahan Karlibas
a03feaae55
add missing constraints
2020-12-11 18:59:29 +03:00
Tunahan Karlibas
b6f7eef946
Remove unnecessary check and fix local_def_id parameter
2020-12-11 01:59:05 +03:00
Tunahan Karlibas
de1cd4b36d
Extra assertions in eval_body_using_ecx to disallow queries for
...
functions that does allocations
2020-12-09 14:53:35 +03:00
Vishnunarayan K I
8119c4beee
review comments
2020-11-12 21:08:18 +05:30
Vishnunarayan K I
5029a19313
check mir exists before validation; fix tests
2020-11-12 21:08:18 +05:30
Vishnunarayan K I
6781907444
fix tests and formatting
2020-11-12 21:08:18 +05:30
Vishnunarayan K I
8bce9af78c
add error_occured field to ConstQualifs, fix #76064
2020-11-12 21:08:18 +05:30
Mara Bos
5ffccc4dfa
Rollup merge of #78742 - vn-ki:fix-issue-78655, r=oli-obk
...
make intern_const_alloc_recursive return error
fix #78655
r? ``@oli-obk``
2020-11-05 10:29:59 +01:00
Vishnunarayan K I
bd7229daf0
make intern_const_alloc_recursive return error fix #78655
2020-11-04 23:22:14 +05:30
oli
8282d526e0
Replace Scalar::zst
with a Scalar::ZST
constant
2020-11-04 10:12:41 +00:00
oli
df4d717d0b
s/Scalar::Raw/Scalar::Int
2020-11-04 10:11:31 +00:00
Oliver Scherer
ed7a4adeb3
32 bit platforms don't have 64 bit pointers
2020-11-04 09:58:59 +00:00
Oliver Scherer
362123dd75
Split the "raw integer bytes" part out of Scalar
2020-11-04 09:58:59 +00:00
Ralf Jung
18fd58e9d1
interning cleanup: we no longer need to distinguish Const and ConstInner; we no longer need the ignore_interior_mut_in_const hack
2020-10-26 08:56:54 +01:00
Ralf Jung
0e014be359
move UnsafeCell-in-const check from interning to validation
2020-10-26 08:56:54 +01:00
Ralf Jung
d0a23e613d
ensure we intern all promoteds as InternKind::Promoted
2020-10-26 08:56:54 +01:00
Bastian Kauschke
8160bfa39c
query_name_of_opt_const_arg -> query_name_opt_const_arg
2020-10-05 08:49:21 +02:00
Oliver Scherer
ce6c25da58
References to ZSTs may be at arbitrary aligned addresses
2020-09-30 10:40:49 +02:00
Oliver Scherer
b8e6883a2f
Reflect the "do not call this query directly" mentality in its name
2020-09-19 10:57:14 +02:00
Oliver Scherer
c3c8c981a8
Rustfmt
2020-09-19 10:36:36 +02:00
Oliver Scherer
182ed8544d
Address review comments
2020-09-19 10:36:36 +02:00
Oliver Scherer
888afd50d9
Unify the names of const eval queries and their return types
2020-09-19 10:36:36 +02:00
Oliver Scherer
69a6be73e6
Rename const eval queries to reflect the validation changes
2020-09-19 10:36:36 +02:00
Oliver Scherer
48f366fced
Replace and_then
map_err
and_then
chain with a match
2020-09-19 10:36:36 +02:00
Oliver Scherer
b1bd34df0c
turn_into_const
is infallible
2020-09-19 10:36:36 +02:00
Oliver Scherer
4397d66d42
Document op_to_const
's purpose
2020-09-19 10:36:36 +02:00