Commit Graph

234829 Commits

Author SHA1 Message Date
Ralf Jung
7a599d758d Merge from rustc 2023-09-06 08:05:02 +02:00
Ralf Jung
2416eae109 Preparing for merge from rustc 2023-09-06 08:04:24 +02:00
Ralf Jung
83ae1e6d35 give josh more time to start 2023-09-06 08:04:20 +02:00
Weihang Lo
2619a6ea51
Update cargo 2023-09-06 12:58:59 +08:00
bors
51a9df8c70 Auto merge of #115584 - ezekielathome:docs-pattern-inconsistency, r=compiler-errors
replace doc occurrences of ItemLikeVisitor

Solves #114885

ItemLikeVisitor used to have comments describing visit patterns. After it was removed, it was moved to `rustc_hir::intravisit` but references in `intravisit.rs` weren't updated.
2023-09-06 04:24:36 +00:00
Gurinder Singh
6a286e775c Add explanatory note to 'expected item' error 2023-09-06 09:05:07 +05:30
bors
aeddd2ddfd Auto merge of #115529 - chenyukang:yukang-fix-115402-overflowsize, r=compiler-errors
Fix error report for size overflow from transmute

Fixes #115402

The span in the error reporting always points to the `dst`, this is an old issue, I may open another PR to fix it.
2023-09-06 02:37:41 +00:00
David Koloski
c18da3ccd4 Add regression test for LLVM 17-rc3 miscompile
See #115385 for more details.
2023-09-06 02:23:48 +00:00
bors
25283f4e13 Auto merge of #115371 - matthewjasper:if-let-guard-parsing, r=cjgillot
Make if let guard parsing consistent with normal guards

- Add tests that struct expressions are not allowed in `if let` and `while let` (no change, consistent with `if` and `while`)
- Allow struct expressions in `if let` guards (consistent with `if` guards).

r? `@cjgillot`

Closes #93817
cc #51114
2023-09-06 00:46:21 +00:00
bors
ff902fff1f Auto merge of #115581 - djkoloski:update_llvm_submodule, r=cuviper
Update LLVM submodule to 17.0.0-rc4

Updates the in-tree LLVM submodule to the 17.0.0-rc4 branch from https://github.com/rust-lang/llvm-project/pull/151.
2023-09-05 22:56:02 +00:00
yukang
00010eda8b Fix error report for size overflow from transmute 2023-09-06 06:48:34 +08:00
Camille GILLOT
7ef555d84a Support non-trivial scalars in ConstProp. 2023-09-05 21:25:41 +00:00
Camille GILLOT
09ce0f6ebc Remove type from ScalarTy. 2023-09-05 21:25:41 +00:00
Camille GILLOT
d35be6c097 Do not assert in try_to_int. 2023-09-05 21:25:41 +00:00
bors
953901e35c Auto merge of #115507 - cjgillot:relative-source-file, r=oli-obk
Use relative positions inside a SourceFile.

This allows to remove the normalization of start positions for hashing, and simplify allocation of global address space.

cc `@Zoxc`
2023-09-05 21:03:56 +00:00
bors
a991861ec9 Auto merge of #115507 - cjgillot:relative-source-file, r=oli-obk
Use relative positions inside a SourceFile.

This allows to remove the normalization of start positions for hashing, and simplify allocation of global address space.

cc `@Zoxc`
2023-09-05 21:03:56 +00:00
ezekiel
13f17e1a93 replace doc occurrences of ItemLikeVisitor
ItemLikeVisitor was removed, and the visit strategy was moved to `rustc_hir::intravisit`
2023-09-05 22:40:36 +02:00
Michael Goulet
f479a7aa8d Restore some removed tests 2023-09-05 20:20:55 +00:00
Michael Goulet
52aff53812 Correctly deny late-bound lifetimes from parent in anon consts and TAITs 2023-09-05 20:20:55 +00:00
bors
b9a9722bda Auto merge of #15556 - gigaroby:master, r=lnicola
Update notify to 6.1.1

Unlike version 6.0.1, this does not pull windows-sys 0.45.0 as observed in #15077.

```
$ cargo tree --target=x86_64-pc-windows-gnu --charset=ascii | grep windows-sys

|           |   `-- windows-sys v0.42.0
|   |   |   |   |   |       `-- windows-sys v0.42.0 (*)
|       `-- windows-sys v0.48.0
    |   |   `-- windows-sys v0.48.0 (*)
    |   `-- windows-sys v0.48.0 (*)
|   `-- windows-sys v0.48.0 (*)
|   `-- windows-sys v0.42.0 (*)
```
2023-09-05 20:01:54 +00:00
y21
30846b16a0 add comments in code to clarify and fix typo 2023-09-05 21:55:08 +02:00
David Barsky
6260c635ee fmt 2023-09-05 15:45:52 -04:00
bors
f91c53d738 Auto merge of #115579 - matthiaskrgr:rollup-n4ijxl7, r=matthiaskrgr
Rollup of 3 pull requests

Successful merges:

 - #114794 (clarify safety documentation of ptr::swap and ptr::copy)
 - #115397 (Add support to return value in StableMIR interface and not crash due to compilation error)
 - #115559 (implied bounds: do not ICE on unconstrained region vars)

Failed merges:

 - #115532 (Implement SMIR generic parameter instantiation)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-09-05 19:21:46 +00:00
David Koloski
fba61a8233 Update LLVM submodule to 17.0.0-rc4 2023-09-05 18:34:53 +00:00
Eduardo Sánchez Muñoz
0b6ee86d37 Remove special handling in codegen for some AVX and SSE2 shift by immediate intrinsics
Those were removed from stdarch in https://github.com/rust-lang/stdarch/pull/1463 (`simd_shl` and `simd_shr` are used instead)
2023-09-05 20:17:01 +02:00
Matthias Krüger
8c0490782e
Rollup merge of #115559 - lcnr:implied-bounds-unconstrained, r=aliemjay
implied bounds: do not ICE on unconstrained region vars

fixes #112832

see tests/ui/implied-bounds/implied-bounds-unconstrained-2.rs for a minimal example showing why this is necessary.

r? types

cc ``@compiler-errors`` ``@aliemjay`` https://rust-lang.zulipchat.com/#narrow/stream/144729-t-types/topic/assoc.20type.20bound.20in.20super.20trait
2023-09-05 20:15:03 +02:00
Matthias Krüger
c7d5c12cc8
Rollup merge of #115397 - celinval:smir-interface, r=oli-obk
Add support to return value in StableMIR interface and not crash due to compilation error

Invoking `StableMir::run()` on a crate that has any compilation error was crashing the entire process. Instead, return a `CompilerError` so the user knows compilation did not succeed. I believe ICE will also be converted to `CompilerError`.

I'm also adding a possibility for the callback to return a value. I think it will be handy for users (at least it was for my current task of implementing a tool to validate stable-mir). However, if people disagree, I can remove that.
2023-09-05 20:15:02 +02:00
Matthias Krüger
14c57f1adb
Rollup merge of #114794 - RalfJung:swap-safety, r=m-ou-se
clarify safety documentation of ptr::swap and ptr::copy

Closes https://github.com/rust-lang/rust/issues/81005
2023-09-05 20:15:01 +02:00
Eduardo Sánchez Muñoz
c3edc57981 Remove special handling in codegen for some SSE2 "storeu" intrinsics
Those were removed from stdarch in https://github.com/rust-lang/stdarch/pull/1463 (`<*mut _>::write_unaligned` is used instead)
2023-09-05 20:06:50 +02:00
Eduardo Sánchez Muñoz
537edd0be4 Bump stdarch submodule 2023-09-05 19:56:20 +02:00
Camille GILLOT
26c48e6f95 Refactor how MIR represents composite debuginfo. 2023-09-05 17:20:07 +00:00
Lukas Wirth
abe8f1ece4 Implement builtin#format_args, using rustc's format_args parser 2023-09-05 19:19:46 +02:00
Lukas Wirth
2bba056187 Replace data_structures dependency with index in rustc_parse_format 2023-09-05 19:11:50 +02:00
y21
18f36897ef use the correct node args for substitution 2023-09-05 19:08:34 +02:00
Camille GILLOT
429a9258f1 Refactor projection debug. 2023-09-05 17:02:10 +00:00
David Barsky
68781aeab0 fix some more lints 2023-09-05 12:38:33 -04:00
David Barsky
1ee7f54fa6 fix lints 2023-09-05 12:38:33 -04:00
David Barsky
b1b044f2d5 code: yeet rust-analyzer.discoverProjectCommand 2023-09-05 12:38:33 -04:00
Celina G. Val
d10d8290ac Add tests and use ControlFlow 2023-09-05 09:19:56 -07:00
Celina G. Val
1a8a5d0a29 SMIR: Allow users to pick if compilation continues
Currently we stop compilation, but some users might want to keep going.
This is needed for us to test against rustc tests. Other tools, such as
Kani, also implements parts of their logic as a backend so it is
important for compilation to continue.
2023-09-05 08:54:03 -07:00
Celina G. Val
3b01f65aa5 Diferentiate between ICE and compilation error 2023-09-05 08:54:03 -07:00
Celina G. Val
2db01be584 Adjust StableMIR interface to return and not crash
Invoking StableMir::run() on a crate that has any compilation error was
crashing the entire process. Instead, return a `CompilerError` so the
user knows compilation did not succeed.

I believe ICE will also be converted to `CompilerError`.

I'm also adding a return value to the callback, because I think it will
be handy for users (at least it was for my current task of implementing
a tool to validate stable-mir). However, if people disagree,
I can remove that.
2023-09-05 08:54:03 -07:00
bors
ab45885dec Auto merge of #114843 - Zalathar:test-coverage-map, r=oli-obk
coverage: Explicitly test the coverage maps produced by codegen/LLVM

Our existing coverage tests verify the output of end-to-end coverage reports, but we don't have any way to test the specific mapping information (code regions and their associated counters) that are emitted by `rustc_codegen_llvm` and LLVM. That makes it harder to to be confident in changes that would modify those mappings (whether deliberately or accidentally).

This PR addresses that by adding a new `coverage-map` test suite that does the following:
- Compiles test files to LLVM IR assembly (`.ll`)
- Feeds those IR files to a custom tool (`src/tools/coverage-dump`) that extracts and decodes coverage mappings, and prints them in a more human-readable format
- Checks the output of that tool against known-good snapshots

---

I recommend excluding the last commit while reviewing the main changes, because that last commit is just ~40 test files copied over from `tests/run-coverage`, plus their blessed coverage-map snapshots and a readme file. Those snapshots aren't really intended to be checked by hand; they're mostly there to increase the chances that an unintended change to coverage maps will be observable (even if it requires relatively specific circumstances to manifest).
2023-09-05 15:30:59 +00:00
Ralf Jung
4684ffaf2a
if -> when 2023-09-05 17:20:31 +02:00
bors
f222a2dd8f Auto merge of #115568 - matthiaskrgr:rollup-2igo8rl, r=matthiaskrgr
Rollup of 7 pull requests

Successful merges:

 - #113510 (Document soundness of Integer -> Pointer -> Integer conversions in `const` contexts.)
 - #114412 (document our assumptions about symbols provided by the libc)
 - #114813 (explain why we can mutate the FPU control word)
 - #115523 (improve `AttrTokenStream`)
 - #115536 (interpret: make MemPlace, Place, Operand types private to the interpreter)
 - #115540 (Support debuginfo for custom MIR.)
 - #115563 (llvm-wrapper: adapt for LLVM API change)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-09-05 13:44:41 +00:00
Alex Macleod
bbf67c3424 Preserve literals and range kinds in manual_range_patterns 2023-09-05 13:20:37 +00:00
Matthias Krüger
6f31d00244
Rollup merge of #115563 - krasimirgg:llvm-18-bitcodereader, r=nikic
llvm-wrapper: adapt for LLVM API change

No functional changes intended.

Adapts the wrapper for bbe8cd1333.

Found by our experimental rust + llvm @ HEAD CI: https://buildkite.com/llvm-project/rust-llvm-integrate-prototype/builds/22055#018a6495-8dd9-41df-9381-5e7b0009ce0a/274-575
2023-09-05 15:16:51 +02:00
Matthias Krüger
9381e5bf58
Rollup merge of #115540 - cjgillot:custom-debuginfo, r=oli-obk
Support debuginfo for custom MIR.
2023-09-05 15:16:51 +02:00
Matthias Krüger
09974dfc69
Rollup merge of #115536 - RalfJung:interpreter-privacy, r=oli-obk
interpret: make MemPlace, Place, Operand types private to the interpreter

Outside the interpreter, only the typed versions should be used.
2023-09-05 15:16:50 +02:00
Matthias Krüger
a9336b6705
Rollup merge of #115523 - mojave2:improve-tokenstream, r=petrochenkov
improve `AttrTokenStream`

Improve the performance of `AttrTokenStream::to_tokenstream` method
2023-09-05 15:16:50 +02:00