about summary refs log tree commit diff
path: root/compiler/rustc_const_eval
AgeCommit message (Collapse)AuthorLines
2022-08-27interpret: make read-pointer-as-bytes *always* work in MiriRalf Jung-47/+64
and show some extra information when it happens in CTFE
2022-08-27interpret: rename relocation → provenanceRalf Jung-25/+25
2022-08-27Auto merge of #100999 - nnethercote:shrink-FnAbi, r=bjorn3bors-6/+4
Shrink `FnAbi` Because they can take up a lot of memory in debug and release builds. r? `@bjorn3`
2022-08-27remove a now-useless machine hookRalf Jung-24/+5
2022-08-27remove an ineffective check in const_propRalf Jung-1/+4
2022-08-27Auto merge of #101064 - compiler-errors:rollup-fwm5m5f, r=compiler-errorsbors-113/+171
Rollup of 9 pull requests Successful merges: - #100724 (Migrate ast lowering to session diagnostic) - #100735 (Migrate `rustc_ty_utils` to `SessionDiagnostic`) - #100738 (Diagnostics migr const eval) - #100744 (Migrate rustc_mir_dataflow to diagnostic structs) - #100776 (Migrate `rustc_lint` errors to `SessionDiagnostic`) - #100817 (sugg: suggest the usage of boolean value when there is a typo in the keyword) - #100836 (Migrate `rustc_attr` crate diagnostics) - #100890 (Migrate rustc_driver to SessionDiagnostic) - #100900 (on `region_errors.rs`) Failed merges: - #100831 (Migrate `symbol_mangling` module to new diagnostics structs) r? `@ghost` `@rustbot` modify labels: rollup
2022-08-26Rollup merge of #100738 - nidnogg:diagnostics_migr_const_eval, r=davidtwcoMichael Goulet-113/+171
Diagnostics migr const eval This PR should eventually contain all diagnostic migrations for the `rustc_const_eval` crate. r? `@davidtwco` `@rustbot` label +A-translation
2022-08-26make read_immediate error immediately on uninit, so ImmTy can carry ↵Ralf Jung-264/+175
initialized Scalar
2022-08-26remove some now-unnecessary parameters from check_bytesRalf Jung-12/+3
2022-08-26remove enforce_number_init machine hook that Miri no longer needsRalf Jung-24/+8
2022-08-26fix an outdated machine hook nameRalf Jung-7/+7
2022-08-26Replace `Body::basic_blocks()` with field accessTomasz Miąsko-11/+11
2022-08-26no alignment check during interningRalf Jung-3/+5
2022-08-26Move `ArgAbi::pad_i32` into `PassMode::Cast`.Nicholas Nethercote-4/+2
Because it's only needed for that variant. This shrinks the types and clarifies the logic.
2022-08-26Turn `ArgAbi::pad` into a `bool`.Nicholas Nethercote-1/+1
Because it's only ever set to `None` or `Some(Reg::i32())`.
2022-08-26Box `CastTarget` within `PassMode`.Nicholas Nethercote-2/+2
Because `PassMode::Cast` is by far the largest variant, but is relatively rare. This requires making `PassMode` not impl `Copy`, and `Clone` is no longer necessary. This causes lots of sigil adjusting, but nothing very notable.
2022-08-25Auto merge of #100571 - cjgillot:mir-cost-visit, r=compiler-errorsbors-16/+14
Check projection types before inlining MIR Fixes https://github.com/rust-lang/rust/issues/100550 I'm very unhappy with this solution, having to duplicate MIR validation code, but at least it removes the ICE. r? `@compiler-errors`
2022-08-23extra sanity check against consts pointing to mutable memoryRalf Jung-27/+45
2022-08-22Addressing tidy check failnidnogg-2/+7
2022-08-22Addressing last comment on PR reviewnidnogg-4/+4
2022-08-22Switched errors to diags according to latest PRsnidnogg-12/+12
2022-08-21Hotfix ftl err name, added check for err.code in create_feature_errnidnogg-1/+1
2022-08-21Fixed failing tests (missing labels), added automatic error code in ↵nidnogg-18/+11
create_feature_err() builder
2022-08-21Added several more migrations under ops.rs, failing some tests thoughnidnogg-97/+138
2022-08-21Migration on ops.rs for unstable const functionsnidnogg-5/+11
2022-08-21Migrated Unallowed function pointer calls in interpreter/opsnidnogg-5/+10
2022-08-21Finished const_eval module migration, moving onto sibling foldersnidnogg-6/+14
2022-08-21fix ICE with extra-const-ub-checksRalf Jung-7/+33
2022-08-21Also validate types before inlining.Camille GILLOT-16/+14
2022-08-21Replace #[lint/warning/error] with #[diag]Xiretza-9/+9
2022-08-20Rollup merge of #100507 - cameron1024:suggest-lazy, r=compiler-errorsMatthias Krüger-0/+5
suggest `once_cell::Lazy` for non-const statics Addresses https://github.com/rust-lang/rust/issues/100410 Some questions: - removing the `if` seems to include too many cases (e.g. calls to non-const functions inside a `const fn`), but this code excludes the following case: ```rust const FOO: Foo = non_const_fn(); ``` Should we suggest `once_cell` in this case as well? - The original issue mentions suggesting `AtomicI32` instead of `Mutex<i32>`, should this PR address that as well?
2022-08-19Rollup merge of #100208 - RalfJung:dyn-upcast-nop, r=petrochenkovDylan DPC-1/+6
make NOP dyn casts not require anything about the vtable As suggested [on Zulip](https://rust-lang.zulipchat.com/#narrow/stream/144729-t-types/topic/dyn-upcasting.20stabilization/near/292151439). This matches what the codegen backends already do, and what Miri did do until https://github.com/rust-lang/rust/pull/99420 when I made it super extra paranoid.
2022-08-17Rollup merge of #99972 - RalfJung:1zst, r=lcnrMatthias Krüger-1/+3
interpret: only consider 1-ZST when searching for receiver `repr(transparent)` currently entirely rejects ZST with alignment larger than 1 (which is odd, arguably [this](https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=02870f29396fa948c3123cb53d869ad1) should be accepted), so this should be safe. And if it ever isn't safe then that is very likely a bug elsewhere in the compiler.
2022-08-16Rollup merge of #100600 - saethlin:rename-memory-hooks, r=RalfJungMatthias Krüger-8/+14
Rename Machine memory hooks to suggest when they run Some of the other memory hooks start with `before_` or `after_` to indicate that they run before or after a certain operation. These don't, so I was a bit confused as to when they are supposed to run. `memory_read` can be read two ways in English, "memory was read" or "this is a memory read" so without the prefix this was especially ambiguous.
2022-08-15Rename Machine memory hooks to suggest when they runBen Kimock-8/+14
2022-08-14suggest lazy-static for non-const staticscameron-0/+5
2022-08-13Rollup merge of #100438 - compiler-errors:issue-100360, r=lcnrMichael Goulet-7/+2
Erase regions better in `promote_candidate` Use `tcx.erase_regions` instead of manually walking through the substs.... this also makes the code slightly simpler :see_no_evil: Fixes #100360 Fixes #89851
2022-08-12Adjust cfgsMark Rousskov-1/+0
2022-08-12Rollup merge of #100229 - RalfJung:extra-const-ub-checks, r=lcnrDylan DPC-12/+14
add -Zextra-const-ub-checks to enable more UB checking in const-eval Cc https://github.com/rust-lang/rust/issues/99923 r? `@oli-obk`
2022-08-12Erase regions better in promote_candidateMichael Goulet-7/+2
2022-08-11Rollup merge of #100391 - nnethercote:improve-size-assertions, r=lqdDylan DPC-9/+11
Improve size assertions r? `@lqd`
2022-08-10Avoid repeating qualifiers on `static_assert_size` calls.Nicholas Nethercote-9/+11
Some of these don't need a `use` statement because there is already a `#[macro_use] extern crate rustc_data_structures` item in the crate.
2022-08-09dont rely on old macro-in-trait-impl bugRalf Jung-12/+0
2022-08-09Rollup merge of #100181 - RalfJung:alloc-ref-mutability, r=jackh726Dylan DPC-0/+7
add method to get the mutability of an AllocId Miri needs this for https://github.com/rust-lang/miri/issues/2463.
2022-08-07add -Zextra-const-ub-checks to enable more UB checking in const-evalRalf Jung-0/+14
2022-08-06make NOP dyn casts not require anything about the vtableRalf Jung-1/+6
2022-08-06Auto merge of #99743 - compiler-errors:fulfillment-context-cleanups, r=jackh726bors-10/+2
Some `FulfillmentContext`-related cleanups Use `ObligationCtxt` in some places, remove some `FulfillmentContext`s in others... r? types
2022-08-05add method to get the mutability of an AllocIdRalf Jung-0/+7
2022-08-04Rollup merge of #100095 - jackh726:early-binder, r=lcnrMatthias Krüger-2/+2
More EarlyBinder cleanups Each commit is independent r? types
2022-08-04Add `traits::fully_solve_obligation` that acts like `traits::fully_normalize`Michael Goulet-10/+2
It spawns up a trait engine, registers the single obligation, then fully solves it