summary refs log tree commit diff
path: root/tests/ui/consts/const-eval
AgeCommit message (Collapse)AuthorLines
2023-10-31Do not ICE on constant evaluation failure in GVN.Camille GILLOT-3/+26
2023-10-28Auto merge of #116240 - dtolnay:constdiscriminant, r=thomccbors-1/+1
Const stabilize mem::discriminant Tracking issue: #69821. This PR is a rebase of https://github.com/rust-lang/rust/pull/103893 to resolve conflicts in library/core/src/lib.rs (against #102470 and #110393).
2023-10-25Stabilize `[const_]pointer_byte_offsets`Maybe Waffle-7/+5
2023-10-16Stop trying to preserve pretty-printing.Camille GILLOT-44/+44
2023-10-16Rebless.Camille GILLOT-9/+9
2023-10-16Normalize alloc-id in tests.Camille GILLOT-63/+63
2023-10-15more precise error for 'based on misaligned pointer' caseRalf Jung-7/+7
2023-10-15place evaluation: require the original pointer to be aligned if an access ↵Ralf Jung-2/+19
happens
2023-10-15don't UB on dangling ptr deref, instead check inbounds on projectionsRalf Jung-86/+105
2023-10-14Rollup merge of #116576 - eduardosm:const-eval-wasm-target-features, r=RalfJungGuillaume Gomez-0/+14
const-eval: allow calling functions with targat features disabled at compile time in WASM This is not unsafe on WASM, see https://github.com/rust-lang/rust/pull/84988 r? `@RalfJung` Fixes https://github.com/rust-lang/rust/issues/116516
2023-10-14const-eval: allow calling functions with targat features disabled at compile ↵Eduardo Sánchez Muñoz-0/+14
time in WASM This is not unsafe on WASM, see https://github.com/rust-lang/rust/pull/84988
2023-10-14Auto merge of #116015 - EvanMerlock:master, r=oli-obkbors-0/+53
const_eval: allow function pointer signatures containing &mut T in const contexts potentially fixes #114994 We utilize a `TypeVisitor` here in order to more easily handle control flow. - In the event the typekind the Visitor sees is a function pointer, we skip over it - However, otherwise we do one of two things: - If we find a mutable reference, check it, then continue visiting types - If we find any other type, continue visiting types This means we will check if the function pointer _itself_ is mutable, but not if any of the types _within_ are.
2023-10-14Auto merge of #115524 - RalfJung:misalign, r=wesleywiserbors-0/+72
const-eval: make misalignment a hard error It's been a future-incompat error (showing up in cargo's reports) since https://github.com/rust-lang/rust/pull/104616, Rust 1.68, released in March. That should be long enough. The question for the lang team is simply -- should we move ahead with this, making const-eval alignment failures a hard error? (It turns out some of them accidentally already were hard errors since #104616. But not all so this is still a breaking change. Crater found no regression.)
2023-10-10Rollup merge of #116444 - RalfJung:broken-unused-const, r=oli-obkGuillaume Gomez-0/+31
add test for const-eval error in dead code during monomorphization
2023-10-08add test for const-eval error in dead code during monomorphizationRalf Jung-0/+31
2023-10-06Rollup merge of #116329 - RalfJung:swap-comments, r=scottmcmGuillaume Gomez-1/+2
update some comments around swap() Based on ``@eddyb's`` comment [here](https://github.com/rust-lang/unsafe-code-guidelines/issues/461#issuecomment-1742156410). And then I noticed the wrong capitalization for Miri and fixed it in some other places as well.
2023-10-05Add a note to duplicate diagnosticsAlex Macleod-5/+9
2023-10-02MIRI -> MiriRalf Jung-1/+2
2023-09-28Const stabilize mem::discriminantDavid Tolnay-1/+1
2023-09-26add misalignment const-eval testRalf Jung-0/+72
and some other raw pointer shenanigans while we are at it
2023-09-22test(const_eval): add test cases for #114994Evan Merlock-0/+53
- add new testcase for TypeVisitor on const-eval mutable ref check
2023-09-14don't point at const usage site for resolution-time errorsRalf Jung-23/+23
also share the code that emits the actual error
2023-09-05Auto merge of #115531 - RalfJung:read_via_copy, r=scottmcmbors-4/+26
read_via_copy: don't prematurely optimize away the read Always do the read to ensure consistent UB error messages in const-eval/Miri. r? `@scottmcm`
2023-09-04read_via_copy: don't prematurely optimize away the readRalf Jung-4/+26
2023-09-04Auto merge of #115513 - Urgau:normalize-msg-after-translate, r=petrochenkovbors-0/+16
Don't forget to normalize the translated message This PR adds a missing call to `normalize_whitespace` after translating an label. Fixes https://github.com/rust-lang/rust/issues/115498
2023-09-03Don't forget to normalize the translated messageUrgau-0/+16
2023-08-24Fix ub-int-array test for big-endian platformsUlrich Weigand-42/+10
As of commit 7767cbb3b0b332fd0a46e347ea7f68f20109d768, the tests/ui/consts/const-eval/ub-int-array.rs test is failing on big-endian platforms (in particular s390x), as the stderr output contains a hex dump that depends on endianness. Since this point intentionally verifies the hex dump to check the uninitialized byte markers, I think we should not simply standardize away the hex dump as is done with some of the other tests in this directory. However, most of the test is already endian-independent. The only exception is one line of hex dump, which can also be made endian-independent by choosing appropriate constants in the source code. Since the 32bit and 64bit stderr outputs were already (and remain) identical, I've merged them and removed the stderr-per-bitwidth marker. Fixes (again) https://github.com/rust-lang/rust/issues/105383.
2023-08-02const validation: point at where we found a pointer but expected an integerRalf Jung-131/+165
2023-08-02Auto merge of #114333 - RalfJung:dangling-ptr-offset, r=oli-obkbors-4/+4
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-01properly track why we checked whether a pointer is in-boundsRalf Jung-4/+4
also simplify the in-bounds checking in Miri's borrow trackers
2023-08-01Auto merge of #112849 - m-ou-se:panic-message-format, r=thomccbors-1/+1
Change default panic handler message format. This changes the default panic hook's message format from: ``` thread '{thread}' panicked at '{message}', {location} ``` to ``` thread '{thread}' panicked at {location}: {message} ``` This puts the message on its own line without surrounding quotes, making it easiser to read. For example: Before: ``` thread 'main' panicked at 'env variable `IMPORTANT_PATH` should be set by `wrapper_script.sh`', src/main.rs:4:6 ``` After: ``` thread 'main' panicked at src/main.rs:4:6: env variable `IMPORTANT_PATH` should be set by `wrapper_script.sh` ``` --- See this PR by `@nyurik,` which does that for only multi-line messages (specifically because of `assert_eq`): https://github.com/rust-lang/rust/pull/111071 This is the change that does that for *all* panic messages.
2023-07-30Auto merge of #112843 - chenyukang:yukang-more-on-backtrace, r=workingjubileebors-1/+1
Print omitted frames count for short backtrace mode Fixes #111730
2023-07-30Rollup merge of #102198 - lukas-code:nonnull_as_ref, r=AmanieuMatthias Krüger-0/+30
`const`-stablilize `NonNull::as_ref` A bunch of pointer to reference methods have been made unstably const some time ago in #91823 under the feature gate `const_ptr_as_ref`. Out of these, `NonNull::as_ref` can be implemented as a `const fn` in stable rust today, so i hereby propose to const stabilize this function only. Tracking issue: #91822 ``@rustbot`` label +T-libs-api -T-libs
2023-07-29print omitted frames count for short backtrace modeyukang-1/+1
2023-07-29Change default panic handler message format.Mara Bos-1/+1
2023-07-25bless moreRalf Jung-7/+20
2023-07-25interpret: refactor projection code to work on a common trait, and use that ↵Ralf Jung-10/+29
for visitors
2023-07-24interpret: support projecting into Place::Local without force_allocationRalf Jung-1/+1
2023-07-16Add const-eval test for `#[target_feature(enable = ...)]` function callsEduardo Sánchez Muñoz-0/+26
2023-06-27Don't sort strings right after we just sorted by typesMichael Goulet-4/+4
2023-06-12Adjust UI tests for `unit_bindings`许杰友 Jieyou Xu (Joe)-10/+10
- Either explicitly annotate `let x: () = expr;` where `x` has unit type, or remove the unit binding to leave only `expr;` instead. - Fix disjoint-capture-in-same-closure test
2023-06-01Use translatable diagnostics in `rustc_const_eval`Deadbeef-31/+35
2023-05-31Remove const eval limit and implement an exponential backoff lint insteadOli Scherer-88/+177
2023-05-23add tests for const `NonNull::as_ref`Lukas Markeffsky-0/+30
2023-05-15Suppress "erroneous constant used" for constants tainted by errorsTomasz Miąsko-56/+0
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-05Stabilize const_ptr_readbors-18/+17
2023-04-27bless testsThe 8472-4/+4
2023-04-21Ensure mir_drops_elaborated_and_const_checked when requiring codegen.Camille GILLOT-0/+2
2023-04-19Auto merge of #110061 - WaffleLapkin:duality_of_myself_and_this, r=cjgillotbors-0/+4
Add suggestion to use closure argument instead of a capture on borrowck error Fixes #109271 r? `@compiler-errors` This should probably be refined a bit, but opening a PR so that I don't forget anything.
2023-04-19Extend and use `hir::Node::body_id`Maybe Waffle-0/+4