| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
Adds borrowck tests for the following features:
- bindings_after_at
- or_patterns
- slice_patterns
- box_patterns
|
|
Rollup of 6 pull requests
Successful merges:
- #69201 (Permit attributes on 'if' expressions)
- #69685 (unix: Don't override existing SIGSEGV/BUS handlers)
- #69762 (Ensure that validity only raises validity errors)
- #69779 (librustc_codegen_llvm: Use slices in preference to 0-terminated strings)
- #69801 (rustc_parse: Remove `Parser::normalized(_prev)_token`)
- #69842 (Add more regression tests)
Failed merges:
r? @ghost
|
|
Add more regression tests
Closes #54239
Closes #57200
Closes #57201
Closes #60473
Closes #64620
Closes #67166
r? @Centril
|
|
rustc_parse: Remove `Parser::normalized(_prev)_token`
Perform the "normalization" (renamed to "uninterpolation") on the fly when necessary.
The final part of https://github.com/rust-lang/rust/pull/69579 https://github.com/rust-lang/rust/pull/69384 https://github.com/rust-lang/rust/pull/69376 https://github.com/rust-lang/rust/pull/69211 https://github.com/rust-lang/rust/pull/69034 https://github.com/rust-lang/rust/pull/69006.
r? @Centril
|
|
librustc_codegen_llvm: Use slices in preference to 0-terminated strings
Additionally whenever possible match C API provided by the LLVM.
|
|
Ensure that validity only raises validity errors
For now, only as a debug-assertion (similar to const-prop detecting errors that allocate).
Now includes https://github.com/rust-lang/rust/pull/69646.
[Relative diff](https://github.com/RalfJung/rust/compare/layout-visitor...RalfJung:validity-errors).
r? @oli-obk
|
|
unix: Don't override existing SIGSEGV/BUS handlers
Although `stack_overflow::init` runs very early in the process, even
before `main`, there may already be signal handlers installed for things
like the address sanitizer. In that case, just leave it alone, and don't
bother trying to allocate our own signal stacks either.
Fixes #69524.
|
|
Permit attributes on 'if' expressions
Previously, attributes on 'if' expressions (e.g. `#[attr] if true {}`)
were disallowed during parsing. This made it impossible for macros to
perform any custom handling of such attributes (e.g. stripping them
away), since a compilation error would be emitted before they ever had a
chance to run.
This PR permits attributes on 'if' expressions ('if-attrs' from here on).
Both built-in attributes (e.g. `#[allow]`, `#[cfg]`) and proc-macro attributes are supported.
We still do *not* accept attributes on 'other parts' of an if-else
chain. That is, the following code snippet still fails to parse:
```rust
if true {} #[attr] else if false {} else #[attr] if false {} #[attr]
else {}
```
Closes https://github.com/rust-lang/rust/issues/68618
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Although `stack_overflow::init` runs very early in the process, even
before `main`, there may already be signal handlers installed for things
like the address sanitizer. In that case, just leave it alone, and don't
bother trying to allocate our own signal stacks either.
|
|
|
|
Additionally whenever possible match C API provided by the LLVM.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Co-Authored-By: bjorn3 <bjorn3@users.noreply.github.com>
|
|
|
|
|
|
|
|
Rollup of 7 pull requests
Successful merges:
- #69120 (Don't give invalid suggestion on desugared span.)
- #69326 (mir-interpret: add method to read wide strings from Memory)
- #69608 (Expose target libdir information via print command)
- #69734 (Change DIBuilderCreateEnumerator signature to match LLVM 9)
- #69800 (Compile address sanitizer test with debuginfo)
- #69807 (Cleanup E0391 explanation)
- #69820 (clean up E0392 explanation)
Failed merges:
r? @ghost
|
|
clean up E0392 explanation
r? @Dylan-DPC
|
|
Cleanup E0391 explanation
r? @Dylan-DPC
|
|
Compile address sanitizer test with debuginfo
This makes error-pattern to match regardless of current
configuration of `rust.debuginfo-level-tests` in `config.toml`.
|
|
Change DIBuilderCreateEnumerator signature to match LLVM 9
* Change DIBuilderCreateEnumerator signature to match LLVM 9 C API.
* Use provided is unsigned flag when emitting enumerators.
|
|
Expose target libdir information via print command
With custom libdir it is required to have an access to library placement.
See https://github.com/RazrFalcon/cargo-bloat/issues/51
|
|
mir-interpret: add method to read wide strings from Memory
Implemented *step2* from [instructions](https://github.com/rust-lang/miri/issues/707#issuecomment-561564057) laid out in rust-lang/miri#707.
Added 2 new methods to struct `rustc_mir::interpret::InterpCx`.
* `read_os_str_from_wide_str` (src/librustc_mir/interpret/operand.rs)
* `write_os_str_to_wide_str` (src/librustc_mir/interpret/place.rs)
- used existing logic implemented in [MIRI/src/eval.rs](https://github.com/rust-lang/miri/blob/94732aaf7bf79fd01a4a48d11155c6586b937514/src/eval.rs#L132-L141)
These methods are intended to be used for environment variable emulation in Windows.
|
|
Don't give invalid suggestion on desugared span.
|
|
Rollup of 7 pull requests
Successful merges:
- #69631 (remove non-sysroot sources from rust-src component)
- #69646 (Miri visitor: detect primitive types based on type, not layout (also, more tests))
- #69651 (Try to ensure usize marker does not get merged)
- #69668 (More documentation and simplification of BTreeMap's internals)
- #69771 (Cleanup E0390 explanation)
- #69777 (Add missing ` in doc for File::with_options())
- #69812 (Refactorings to method/probe.rs and CrateId)
Failed merges:
r? @ghost
|
|
Refactorings to method/probe.rs and CrateId
A couple of refactorings done while looking into performance improvements in method resolution.
|
|
Add missing ` in doc for File::with_options()
|
|
Cleanup E0390 explanation
r? @Dylan-DPC
|
|
More documentation and simplification of BTreeMap's internals
Salvage the documentation and simplification from #67980, without changing the type locked down by debuginfo.
r? @rkruppe
|