| Age | Commit message (Collapse) | Author | Lines |
|
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: b3cfb8faf84c5f3b7909479a9f9b6a3290d5f4d7
Filtered ref: 8995aa7743caf019203bc853f27af6006705ae30
Upstream diff: https://github.com/rust-lang/rust/compare/9385c64c95d971329e62917adc4349c8ccdbafe0...b3cfb8faf84c5f3b7909479a9f9b6a3290d5f4d7
This merge was created using https://github.com/rust-lang/josh-sync.
|
|
Implement Integer funnel shifts
Tracking issue: rust-lang/rust#145686
ACP: https://github.com/rust-lang/libs-team/issues/642
This implements funnel shifts on primitive integer types. Implements this for cg_llvm, with a fallback impl for everything else
Thanks `@folkertdev` for the fixes and tests
cc `@rust-lang/libs-api`
|
|
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: 9385c64c95d971329e62917adc4349c8ccdbafe0
Filtered ref: 80818ce34771a13f1a67a706e7e283ba58bdc460
This merge was created using https://github.com/rust-lang/josh-sync.
|
|
|
|
Add minimal functionality for using GenMC mode
|
|
- Implement memory allocation compatible with GenMC.
- Extract address generator struct from Miri's allocator.
- Support thread creation and joining.
- Support atomic load and store.
- Support scheduling through GenMC.
- Add tests for GenMC mode.
- Add clang-format file for C++ code in Miri.
- Update genmc-sys crate license to MIT/Apache to match GenMC dependency.
- Add documentation for GenMC mode.
Note: this commit depends on changes to GenMC not yet upstreamed to its official repository.
Co-authored-by: Ralf Jung <post@ralfj.de>
|
|
- Add a fallback implementation for the intrinsics
- Add LLVM backend support for funnel shifts
Co-Authored-By: folkertdev <folkert@folkertdev.nl>
|
|
fix mangitude of applied float error
|
|
|
|
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: 51ff895062ba60a7cba53f57af928c3fb7b0f2f4
Filtered ref: 5057370cda58bcaad24ea094ec11c8c01b24c2bc
This merge was created using https://github.com/rust-lang/josh-sync.
|
|
|
|
|
|
|
|
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: 828e45ad11ce4ab56dd64e93f1fb5dd8f0c0ae93
Filtered ref: 10ab51e1b1b8eadb430163bd78ef39c0721cfbf8
This merge was created using https://github.com/rust-lang/josh-sync.
|
|
native-lib: allow passing structs as arguments
|
|
|
|
|
|
|
|
Make target pointer width in target json an integer
r? Noratrieb
cc `@RalfJung` (https://github.com/rust-lang/rust/pull/142352/files#r2230380120)
try-job: x86_64-rust-for-linux
|
|
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: e004014d1bf4c29928a0f0f9f7d0964d43606cbd
Filtered ref: d62798e442c1c6ec461725b87dacc87c285259c8
This merge was created using https://github.com/rust-lang/josh-sync.
|
|
r=scottmcm
Stabilize `strict_provenance_atomic_ptr` feature
This closes [tracking issue](https://github.com/rust-lang/rust/issues/99108) and stabilises `AtomicPtr::{fetch_ptr_add, fetch_ptr_sub, fetch_byte_add, fetch_byte_sub, fetch_or, fetch_and, fetch_xor}`
---
EDIT: FCP completed at https://github.com/rust-lang/rust/issues/99108#issuecomment-3168260347
|
|
Add shim test for `DuplicateHandle`
|
|
unsupported.
|
|
|
|
|
|
|
|
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: a1dbb443527bd126452875eb5d5860c1d001d761
Filtered ref: e644bd7324c7e071785356fcaad5bd89e671366b
This merge was created using https://github.com/rust-lang/josh-sync.
|
|
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: f6d23413c399fb530be362ebcf25a4e788e16137
Filtered ref: fc132ae45e682a2556f99caed7bca9b8a2e909c8
This merge was created using https://github.com/rust-lang/josh-sync.
|
|
Add lint against integer to pointer transmutes
# `integer_to_ptr_transmutes`
*warn-by-default*
The `integer_to_ptr_transmutes` lint detects integer to pointer transmutes where the resulting pointers are undefined behavior to dereference.
### Example
```rust
fn foo(a: usize) -> *const u8 {
unsafe {
std::mem::transmute::<usize, *const u8>(a)
}
}
```
```
warning: transmuting an integer to a pointer creates a pointer without provenance
--> a.rs:1:9
|
158 | std::mem::transmute::<usize, *const u8>(a)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: this is dangerous because dereferencing the resulting pointer is undefined behavior
= note: exposed provenance semantics can be used to create a pointer based on some previously exposed provenance
= help: if you truly mean to create a pointer without provenance, use `std::ptr::without_provenance_mut`
= help: for more information about transmute, see <https://doc.rust-lang.org/std/mem/fn.transmute.html#transmutation-between-pointers-and-integers>
= help: for more information about exposed provenance, see <https://doc.rust-lang.org/std/ptr/index.html#exposed-provenance>
= note: `#[warn(integer_to_ptr_transmutes)]` on by default
help: use `std::ptr::with_exposed_provenance` instead to use a previously exposed provenance
|
158 - std::mem::transmute::<usize, *const u8>(a)
158 + std::ptr::with_exposed_provenance::<u8>(a)
|
```
### Explanation
Any attempt to use the resulting pointers are undefined behavior as the resulting pointers won't have any provenance.
Alternatively, `std::ptr::with_exposed_provenance` should be used, as they do not carry the provenance requirement or if the wanting to create pointers without provenance `std::ptr::without_provenance_mut` should be used.
See [std::mem::transmute] in the reference for more details.
[std::mem::transmute]: https://doc.rust-lang.org/std/mem/fn.transmute.html
--------
People are getting tripped up on this, see https://github.com/rust-lang/rust/issues/128409 and https://github.com/rust-lang/rust/issues/141220. There are >90 cases like these on [GitHub search](https://github.com/search?q=lang%3Arust+%2Ftransmute%3A%3A%3Cu%5B0-9%5D*.*%2C+%5C*const%2F&type=code).
Fixes https://github.com/rust-lang/rust-clippy/issues/13140
Fixes https://github.com/rust-lang/rust/issues/141220
Fixes https://github.com/rust-lang/rust/issues/145523
`@rustbot` labels +I-lang-nominated +T-lang
cc `@traviscross`
r? compiler
|
|
|
|
tree borrows: refactor new-permission logic
|
|
|
|
add some ZST reborrow tests
|
|
|
|
|
|
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: 8e3710ef31a0b2cdf5a1c2f3929b7735d1e28c20
Filtered ref: 3629e47f19f1c1c9710f45b80a31eb32d851baf6
This merge was created using https://github.com/rust-lang/josh-sync.
|
|
Consolidate panicking functions in `slice/index.rs`
Consolidate all the panicking functions in `slice/index.rs` to use a single `slice_index_fail` function, similar to how it is done in `str/traits.rs`.
Split off from https://github.com/rust-lang/rust/pull/145024
|
|
miri subtree update
Subtree update of `miri` to https://github.com/rust-lang/miri/commit/980da679e4da038a723c56b2af892ff7ea0209fc.
Created using https://github.com/rust-lang/josh-sync.
r? `@ghost`
|
|
Consolidate all the panicking functions in `slice/index.rs` to use a single
`slice_index_fail` function, similar to how it is done in `str/traits.rs`.
|
|
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: 125ff8a788c5d6a66917f499abdc00051afe6886
Filtered ref: bcbe2eb9c674ba7e35befb4557f33a1956964256
This merge was created using https://github.com/rust-lang/josh-sync.
|
|
Bumps [slab](https://github.com/tokio-rs/slab) from 0.4.10 to 0.4.11.
- [Release notes](https://github.com/tokio-rs/slab/releases)
- [Changelog](https://github.com/tokio-rs/slab/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/slab/compare/v0.4.10...v0.4.11)
---
updated-dependencies:
- dependency-name: slab
dependency-version: 0.4.11
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
|
|
|
|
Pull recent changes from https://github.com/rust-lang/rust via Josh.
Upstream ref: f605b57042ffeb320d7ae44490113a827139b766
Filtered ref: c69d2743ed4676c4529ebb60b258f6c1273c9145
This merge was created using https://github.com/rust-lang/josh-sync.
|
|
|
|
The fallback is to just ignore the arguments. That is a valid implementation because this intrinsic is just a hint.
I also added `miri::intrinsic_fallback_is_spec` annotation, so that miri now supports these operations. A prefetch intrinsic call is valid on any pointer.
|
|
When a symbol only has a weak definition, this definition will be
picked. When a symbol has both a weak and a regular definition, the
regular definition will be picked instead.
|
|
|
|
Miri: fix handling of in-place argument and return place handling
This fixes two separate bugs (in two separate commits):
- If the return place is `_local` and not `*ptr`, we didn't always properly protect it if there were other pointers pointing to that return place.
- If two in-place arguments are *the same* local variable, we didn't always detect that aliasing.
|
|
|
|
expression is a local variable
|