| Age | Commit message (Collapse) | Author | Lines |
|
|
|
cmse: fix 'region variables should not be hashed'
tracking issue: https://github.com/rust-lang/rust/issues/81391
fixes https://github.com/rust-lang/rust/issues/131639
Some background: the `cmse-nonsecure-call` calling convention is used for a call from "secure" to "non-secure" code. To make sure that "non-secure" cannot read any secrets, restrictions are put on the signatures of functions with this calling convention: they can only use 4 arguments for passing arguments, and one register for passing a result. No arguments are passed via the stack, and all other registers are cleared before the call.
We check during `hir_ty_lowering` that the signature follows these rules. We do that by determining and then inspecting the layout of the type. That works well overall, but can run into asserts when the type itself is ill-formed. This PR fixes one such case.
I believe that the fix here, just erasing the regions, is the right shape, but there may be some nuance that I'm missing.
r? types
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
minicore makes it much easier to add new language items to all of the
existing `no_core` tests.
|
|
r=compiler-errors
Split out the `extern_system_varargs` feature
After the stabilization PR was opened, `extern "system"` functions were added to `extended_varargs_abi_support`. This has a number of questions regarding it that were not discussed and were somewhat surprising. It deserves to be considered as its own feature, separate from `extended_varargs_abi_support`.
Tracking issue:
- https://github.com/rust-lang/rust/issues/136946
|
|
After the stabilization PR was opened, `extern "system"` functions were
added to `extended_varargs_abi_support`. This has a number of questions
regarding it that were not discussed and were somewhat surprising.
It deserves to be considered as its own feature, separate from
`extended_varargs_abi_support`.
|
|
|
|
This reverts commit 685f189b4307435b83d625fea397ef36dff4e955.
|
|
Rollup of 7 pull requests
Successful merges:
- #136107 (Introduce CoercePointeeWellformed for coherence checks at typeck stage)
- #136155 (Enable sanitizers on MSVC CI jobs)
- #136524 (Delay bug when method confirmation cannot upcast object pick of self)
- #136584 (Prevent generic pattern types from being used in libstd)
- #136603 (compiler: gate `extern "{abi}"` in ast_lowering)
- #136821 (assign marcoieni and jdno to infra-ci PRs)
- #136825 (Update books)
r? `@ghost`
`@rustbot` modify labels: rollup
|
|
```
error[E0610]: `{integer}` is a primitive type and therefore doesn't have fields
--> $DIR/attempted-access-non-fatal.rs:7:15
|
LL | let _ = 2.l;
| ^
|
help: if intended to be a floating point literal, consider adding a `0` after the period and a `f64` suffix
|
LL - let _ = 2.l;
LL + let _ = 2.0f64;
|
```
|
|
|
|
|
|
|
|
|
|
This check was previously only performed on functions not function pointers.
Co-authored-by: Folkert <folkert@folkertdev.nl>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
when the `C-cmse-nonsecure-call` ABI is used, arguments and return values must be passed via registers. Failing to do so (i.e. spilling to the stack) causes an LLVM error down the line, but now rustc will properly emit an error a bit earlier in the chain
|
|
|
|
|
|
Update tests
|
|
Co-authored-by: Adrian <adrian.iosdev@gmail.com>
|
|
|