| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2023-08-08 | Auto merge of #114520 - RalfJung:unsized-valtrees, r=oli-obk | bors | -11/+15 | |
| simplify handling of valtrees for unsized types | ||||
| 2023-08-07 | Rollup merge of #114382 - scottmcm:compare-bytes-intrinsic, r=cjgillot | Matthias Krüger | -0/+22 | |
| Add a new `compare_bytes` intrinsic instead of calling `memcmp` directly As discussed in #113435, this lets the backends be the place that can have the "don't call the function if n == 0" logic, if it's needed for the target. (I didn't actually *add* those checks, though, since as I understood it we didn't actually need them on known targets?) Doing this also let me make it `const` (unstable), which I don't think `extern "C" fn memcmp` can be. cc `@RalfJung` `@Amanieu` | ||||
| 2023-08-06 | Add a new `compare_bytes` intrinsic instead of calling `memcmp` directly | Scott McMurray | -0/+22 | |
| 2023-08-07 | Rollup merge of #114542 - RalfJung:const-prop-nonsense, r=compiler-errors | Matthias Krüger | -4/+5 | |
| interpret: use ConstPropNonsense for more const-prop induced issues | ||||
| 2023-08-06 | simplify handling of valtrees for unsized types | Ralf Jung | -11/+15 | |
| 2023-08-06 | Rollup merge of #114505 - ouz-a:cleanup_mir, r=RalfJung | Matthias Krüger | -1/+1 | |
| Add documentation to has_deref Documentation of `has_deref` needed some polish to be more clear about where it should be used and what's it's purpose. cc https://github.com/rust-lang/rust/issues/114401 r? `@RalfJung` | ||||
| 2023-08-06 | cleanup misinformation regarding has_deref | ouz-a | -1/+1 | |
| 2023-08-06 | interpret: use ConstPropNonsense for more const-prop induced issues | Ralf Jung | -4/+5 | |
| 2023-08-04 | interpret: add mplace_to_ref helper method | Ralf Jung | -6/+14 | |
| 2023-08-03 | Rollup merge of #114372 - RalfJung:const-pointer-as-int, r=oli-obk | Matthias Krüger | -45/+57 | |
| const validation: point at where we found a pointer but expected an integer Instead of validation just printing "unable to turn pointer into bytes", make this a regular validation error that says where in the value the bad pointer was found. Also distinguish "expected integer, got pointer" from "expected pointer, got partial pointer or mix of pointers". To avoid duplicating things too much I refactored the diagnostics for validity a bit, so that "got uninit, expected X" and "got pointer, expected X" can share the "X" part. Also all the errors emitted for validation are now grouped under `const_eval_validation` so that they are in a single group in the ftl file. r? `@oli-obk` | ||||
| 2023-08-03 | Rollup merge of #114363 - RalfJung:interpret-not-miri, r=jackh726 | Matthias Krüger | -2/+2 | |
| avoid 'miri' when refering to the shared interpreter This is basically the rustc source code version of https://github.com/rust-lang/rustc-dev-guide/pull/1471. | ||||
| 2023-08-02 | const validation: point at where we found a pointer but expected an integer | Ralf Jung | -45/+57 | |
| 2023-08-02 | avoid 'miri' when refering to the shared interpreter | Ralf Jung | -2/+2 | |
| 2023-08-02 | Auto merge of #114333 - RalfJung:dangling-ptr-offset, r=oli-obk | bors | -19/+24 | |
| Miri: fix error on dangling pointer inbounds offset We used to claim that the pointer was "dereferenced", but that is just not true. Can be reviewed commit-by-commit. The first commit is an unrelated rename that didn't seem worth splitting into its own PR. r? `@oli-obk` | ||||
| 2023-08-01 | properly track why we checked whether a pointer is in-bounds | Ralf Jung | -10/+16 | |
| also simplify the in-bounds checking in Miri's borrow trackers | ||||
| 2023-08-01 | rename deref_operand → deref_pointer and some Miri helper functions | Ralf Jung | -9/+8 | |
| 2023-07-31 | fix alignment handling for Repeat expressions | Ralf Jung | -4/+4 | |
| 2023-07-27 | Remove `constness` from `ParamEnv` | Deadbeef | -5/+2 | |
| 2023-07-27 | Rollup merge of #114075 - matthiaskrgr:fmt_args_rustc_3, r=wesleywiser | Matthias Krüger | -28/+20 | |
| inline format!() args from rustc_codegen_llvm to the end (4) r? `@WaffleLapkin` | ||||
| 2023-07-25 | inline format!() args from rustc_codegen_llvm to the end (4) | Matthias Krüger | -28/+20 | |
| r? @WaffleLapkin | ||||
| 2023-07-25 | make MPlaceTy non-Copy | Ralf Jung | -10/+10 | |
| 2023-07-25 | interpret: make read functions generic over operand type | Ralf Jung | -77/+79 | |
| 2023-07-25 | interpret: make write functions generic over the place type | Ralf Jung | -135/+165 | |
| 2023-07-25 | add some sanity checks in write_immediate_no_validate | Ralf Jung | -3/+28 | |
| 2023-07-25 | interpret: read_discriminant: only return VariantIdx | Ralf Jung | -33/+47 | |
| 2023-07-25 | interpret: refactor projection code to work on a common trait, and use that ↵ | Ralf Jung | -1049/+660 | |
| for visitors | ||||
| 2023-07-24 | interpret: support projecting into Place::Local without force_allocation | Ralf Jung | -247/+402 | |
| 2023-07-21 | Revert "Auto merge of #113166 - moulins:ref-niches-initial, r=oli-obk" | David Tolnay | -66/+64 | |
| This reverts commit 557359f92512ca88b62a602ebda291f17a953002, reversing changes made to 1e6c09a803fd543a98bfbe1624d697a55300a786. | ||||
| 2023-07-21 | Auto merge of #113892 - RalfJung:uninit-undef-poison, r=wesleywiser | bors | -1/+1 | |
| clarify MIR uninit vs LLVM undef/poison In [this LLVM discussion](https://discourse.llvm.org/t/rfc-load-instruction-uninitialized-memory-semantics/67481) I learned that mapping our uninitialized memory in MIR to poison in LLVM would be quite problematic due to the lack of a byte type. I am not sure where to write down this insight but this seems like a reasonable start. | ||||
| 2023-07-21 | CTFE: move `target_{i, u}size_{min, max)` to `rustc_abi::TargetDataLayout` | Moulins | -7/+6 | |
| 2023-07-21 | support non-null pointer niches in CTFE | Moulins | -58/+61 | |
| 2023-07-20 | clarify MIR uninit vs LLVM undef/poison | Ralf Jung | -1/+1 | |
| 2023-07-16 | Refactor checking function target features during const-eval | Eduardo Sánchez Muñoz | -18/+29 | |
| * Split into its own function * Do not build a `Vec` of unavailable features | ||||
| 2023-07-16 | miri: fail when calling a function that requires an unavailable target feature | Eduardo Sánchez Muñoz | -0/+19 | |
| miri will report an UB when calling a function that has a `#[target_feature(enable = ...)]` attribute is called and the required feature is not available. "Available features" are the same that `is_x86_feature_detected!` (or equivalent) reports to be available during miri execution (which can be enabled or disabled with the `-C target-feature` flag). | ||||
| 2023-07-14 | refactor(rustc_middle): Substs -> GenericArg | Mahdi Dibaiee | -37/+35 | |
| 2023-07-12 | Re-format let-else per rustfmt update | Mark Rousskov | -17/+36 | |
| 2023-07-11 | fix handling of alignment for dyn-sized places | Ralf Jung | -4/+6 | |
| 2023-07-11 | miri: protect Move() function arguments during the call | Ralf Jung | -59/+173 | |
| 2023-07-08 | Auto merge of #113376 - ↵ | bors | -14/+15 | |
| Nilstrieb:pointer-coercions-are-not-casts-because-that-sounds-way-to-general-aaaa, r=oli-obk Rename `adjustment::PointerCast` and variants using it to `PointerCoercion` It makes it sounds like the `ExprKind` and `Rvalue` are supposed to represent all pointer related casts, when in reality their just used to share a little enum variants. Make it clear there these are only coercions and that people who see this and think "why are so many pointer related casts not in these variants" aren't insane. This enum was added in #59987. I'm not sure whether the variant sharing is actually worth it, but this at least makes it less confusing. r? oli-obk | ||||
| 2023-07-07 | Rename `adjustment::PointerCast` and variants using it to `PointerCoercion` | Nilstrieb | -14/+15 | |
| It makes it sound like the `ExprKind` and `Rvalue` are supposed to represent all pointer related casts, when in reality their just used to share a some enum variants. Make it clear there these are only coercion to make it clear why only some pointer related "casts" are in the enum. | ||||
| 2023-07-07 | miri: check that assignments do not self-overlap | Ralf Jung | -1/+6 | |
| 2023-07-06 | Auto merge of #113377 - BoxyUwU:move_ty_ctors_to_ty, r=compiler-errors | bors | -7/+12 | |
| Move `TyCtxt::mk_x` to `Ty::new_x` where applicable Part of rust-lang/compiler-team#616 turns out there's a lot of places we construct `Ty` this is a ridiculously huge PR :S r? `@oli-obk` | ||||
| 2023-07-05 | Move `TyCtxt::mk_x` to `Ty::new_x` where applicable | Boxy | -7/+12 | |
| 2023-07-05 | Remove a function argument that is always passed with the same value. | Oli Scherer | -1/+1 | |
| 2023-07-05 | Specialize `try_destructure_mir_constant` for its sole user | Oli Scherer | -1/+1 | |
| 2023-07-01 | Put `LayoutError` behind reference to shrink result | Nilstrieb | -1/+1 | |
| `LayoutError` is 24 bytes, which is bigger than the `Ok` types, so let's shrink that. | ||||
| 2023-06-19 | Rollup merge of #112232 - fee1-dead-contrib:match-eq-const-msg, r=b-naber | Michael Goulet | -1/+1 | |
| Better error for non const `PartialEq` call generated by `match` Resolves #90237 | ||||
| 2023-06-19 | Dedup some type checks in the MIR validator | Scott McMurray | -26/+4 | |
| 2023-06-19 | Remove unchecked_add/sub/mul/shl/shr from CTFE/cg_ssa/cg_clif | Scott McMurray | -31/+0 | |
| 2023-06-19 | Promote unchecked_add/sub/mul/shl/shr to mir::BinOp | Scott McMurray | -25/+49 | |
