about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2022-07-25Auto merge of #85673 - csmoe:export-exe-sym, r=bjorn3bors-5/+42
RFC-2841: add codegen flag export symbols from executable Closes #84161 r? `@nikomatsakis` `@Mark-Simulacrum`
2022-07-25Auto merge of #99707 - JohnTitor:rollup-74rb8vq, r=JohnTitorbors-111/+140
Rollup of 7 pull requests Successful merges: - #95040 (protect `std::io::Take::limit` from overflow in `read`) - #95916 (kmc-solid: Use `libc::abort` to abort a program) - #99494 (Use non-relocatable code in nofile-limit.rs test) - #99581 (Improve error messages involving `derive` and `packed`.) - #99643 (Add `sign-ext` target feature to the WASM target) - #99659 (Use `VecMap::get` in `ConstraintLocator::check`) - #99690 (add miri-track-caller to more intrinsic-exposing methods) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-07-25Rollup merge of #99690 - RalfJung:miri-track-caller, r=Mark-SimulacrumYuki Okushi-0/+38
add miri-track-caller to more intrinsic-exposing methods Follow-up to https://github.com/rust-lang/rust/pull/98674: I went through the Miri test suite to find more functions that would benefit from Miri backtrace pruning, and this is what I found. Basically anything that just exposes a potentially-UB intrinsic to the user should get this treatment.
2022-07-25Rollup merge of #99659 - compiler-errors:opaque-type-nit, r=oli-obkYuki Okushi-12/+6
Use `VecMap::get` in `ConstraintLocator::check` Also rename the `def_id` param to `item_def_id` because that's easily confused with `self.def_id` (which is the opaque ty did).
2022-07-25Rollup merge of #99643 - daxpedda:sign-ext-wasm, r=oli-obkYuki Okushi-0/+1
Add `sign-ext` target feature to the WASM target Some target features are still missing from that list. See #97808 for basically the same PR by `@alexcrichton.` Related issue: #96472. PR introducing this issue: #87402.
2022-07-25Rollup merge of #99581 - nnethercote:improve-derive-packed-errors, r=estebankYuki Okushi-51/+68
Improve error messages involving `derive` and `packed`. There are two errors involving `derive` and `packed`. ``` `#[derive]` can't be derived on a `#[repr(packed)]` struct with type or const parameters `#[derive]` can't be derived on a `#[repr(packed)]` struct that does not derive Copy ``` The second one overstates things. It is possible to use derive on a repr(packed) struct that doesn't derive Copy in two cases. - If all the fields within the struct meet the required alignment: 1 for `repr(packed)`, or `N` for `repr(packed(N))`. - If `Default` is the only trait derived. This commit improves things in a few ways. - Changes the errors to say `this trait can't be derived on this ...`. This is more accurate, because it's just *this* trait and *this* packed struct that are a problem, not *all* derived traits on *all* packed structs. - Adds more details to the "ERROR" lines in the test case, enough to distinguish between the two error messages. - Adds more cases to the test case that don't cause errors, e.g. `Default` derives. - Uses a wider variety of builtin traits in the test case, for better coverage. r? `@estebank`
2022-07-25Rollup merge of #99494 - tmiasko:no-pie, r=Mark-SimulacrumYuki Okushi-1/+1
Use non-relocatable code in nofile-limit.rs test To avoid using static-pie which is not essential to the test but which was reported to cause problems on Void Linux where glibc is build without support for static-pie.
2022-07-25Rollup merge of #95916 - solid-rs:feat-kmc-solid-abort, r=Mark-SimulacrumYuki Okushi-47/+6
kmc-solid: Use `libc::abort` to abort a program This PR updates the target-specific abort subroutine for the [`*-kmc-solid_*`](https://doc.rust-lang.org/nightly/rustc/platform-support/kmc-solid.html) Tier 3 targets. The current implementation uses a `hlt` instruction, which is the most direct way to notify a connected debugger but is not the most flexible way. This PR changes it to call the `abort` libc function, making it possible for a system designer to override its behavior as they see fit.
2022-07-25Rollup merge of #95040 - frank-king:fix/94981, r=Mark-SimulacrumYuki Okushi-0/+20
protect `std::io::Take::limit` from overflow in `read` Resolves #94981
2022-07-25Auto merge of #99600 - tmiasko:subst-folder, r=petrochenkovbors-55/+77
Tweak `SubstFolder` implementation
2022-07-25Auto merge of #98770 - klensy:no-string-dupes-ugly, r=cjgillotbors-9/+46
rmeta: avoid embedding `StabilityLevel::Unstable` reason multiple times into .rmeta\.rlib files Avoids bloating size of some rmeta\rlib files by not placing default string for `StabilityLevel::Unstable` reason multiple times, affects only stdlib\rustc artifacts. For stdlib cuts about 3% (diff of total size for patched\unpatched *.rmeta files of stage1-std) of file size, depending on crates. fixes #88180
2022-07-25feat: impl export-executable-symbolscsmoe-5/+42
2022-07-25Auto merge of #99676 - thomcc:dont-overwrite, r=tmiaskobors-1/+1
Don't overwrite CodegenFnAttrs when adding used compiler/linker Pointed out by `@tmiasko` in https://github.com/rust-lang/rust/pull/93718#discussion_r928259163. Probably a better fix than https://github.com/rust-lang/rust/pull/99674 for https://github.com/rust-lang/rust/issues/99596, assuming it does fix the latter. I don't have the ability to write a regression test for this at the moment, and am quite surprised this didn't cause other failures. The old code is clearly wrong though, but I'm not picky as to which of these is better to go with.
2022-07-25Improve error messages involving `derive` and `packed`.Nicholas Nethercote-51/+68
There are two errors involving `derive` and `packed`. ``` `#[derive]` can't be derived on a `#[repr(packed)]` struct with type or const parameters `#[derive]` can't be derived on a `#[repr(packed)]` struct that does not derive Copy ``` The second one overstates things. It is possible to use derive on a repr(packed) struct that doesn't derive Copy in two cases. - If all the fields within the struct meet the required alignment: 1 for `repr(packed)`, or `N` for `repr(packed(N))`. - If `Default` is the only trait derived. This commit improves things in a few ways. - Changes the errors to say `$TRAIT can't be derived on this ...`. This is more accurate, because it's just $TRAIT and *this* packed struct that are a problem, not *all* derived traits on *all* packed structs. - Adds more details to the "ERROR" lines in the test case, enough to distinguish between the two error messages. - Adds more cases to the test case that don't cause errors, e.g. `Default` derives. - Uses a wider variety of builtin traits in the test case, for better coverage.
2022-07-25Auto merge of #97581 - ↵bors-29/+170
AngelicosPhosphoros:improve_calloc_check_in_vec_macro_for_tuples, r=Mark-Simulacrum Support vec zero-alloc optimization for tuples and byte arrays * Implement IsZero trait for tuples up to 8 IsZero elements; * Implement IsZero for u8/i8, leading to implementation of it for arrays of them too; * Add more codegen tests for this optimization. * Lower size of array for IsZero trait because it fails to inline checks
2022-07-24Auto merge of #99603 - fasterthanlime:ra-subtree-2, r=jyn514bors-18/+346064
Convert rust-analyzer to an in-tree tool This re-adds `rust-lang/rust-analyzer` as a git subtree rather than a submodule. Closes https://github.com/rust-lang/rust-analyzer/issues/12815. Prior attempt (research PR): https://github.com/rust-lang/rust/pull/99465 * [x] Remove submodule: `git rm -f src/tools/rust-analyzer` * [x] Add subtree: `git subtree add -P src/tools/rust-analyzer https://github.com/rust-lang/rust-analyzer.git master` * [x] Move to `SourceType::InTree`, * [x] Enable `rust-analyzer/in-rust-tree` feature when built through `x.py` * [x] Add 'check' step * [x] Add 'test' step With this PR, rust-analyzer becomes an "in-tree" tool. Syncs can happen in both directions, see [clippy's relevant book section](https://doc.rust-lang.org/nightly/clippy/development/infrastructure/sync.html). Making sure `proc-macro-srv` doesn't break when the proc_macro bridge changes effectively becomes the responsibility of `rust-lang/rust` contributors. These days, that's mostly `@mystor,` who has been consulted throughout the process. I'm also making myself available in case there's questions / work needed that nobody else signed up for. This doesn't change rust-analyzer's release cycle. After this PR is merged and the next nightly goes out, one can point `rust-analyzer.procMacro.server` to the rustup-provided `rust-analyzer` binary. Changes to improve the situation further (auto-discovery/install of the rust-analyzer component) will happen in `rust-lang/rust-analyzer` and be synced here eventually.
2022-07-24Support vec zero-alloc optimization for tuples and byte arraysAngelicosPhosphoros-29/+170
* Implement IsZero trait for tuples up to 8 IsZero elements; * Implement IsZero for u8/i8, leading to implementation of it for arrays of them too; * Add more codegen tests for this optimization. * Lower size of array for IsZero trait because it fails to inline checks
2022-07-24Only run proc-macro-srv tests for now (after discussion with @Veykril, ↵Amos Wenger-4/+7
@jyn514, and @lnicola)
2022-07-24Auto merge of #99687 - RalfJung:rollup-bojacrc, r=RalfJungbors-146/+115
Rollup of 4 pull requests Successful merges: - #99644 (remove some provenance-related machine hooks that Miri no longer needs) - #99657 (Docs - remove unnecessary `mut` that gives a warning) - #99672 (Remove Clean trait implementation for more items) - #99678 (Update doc comments that refer to config parameter) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
2022-07-24add miri-track-caller to some intrinsic-exposing methodsRalf Jung-0/+38
2022-07-24Rollup merge of #99678 - danbev:rustc_parse-config-doc-comments, r=cjgillotRalf Jung-2/+2
Update doc comments that refer to config parameter This commit updates the `source_file_to_parser` and the `maybe_source_file_to_parse` function's doc comments which currently refer to a `config` parameter. The doc comments have been updated to refer to the `session` parameter similar to the doc comment for `try_file_to_source_file`, which also takes a `&Session` parameter.
2022-07-24Rollup merge of #99672 - GuillaumeGomez:clean-trait-removal, r=Dylan-DPCRalf Jung-53/+55
Remove Clean trait implementation for more items Follow up of #99638. cc `@camelid` r? `@notriddle`
2022-07-24Rollup merge of #99657 - Phosra:patch-1, r=Dylan-DPCRalf Jung-1/+1
Docs - remove unnecessary `mut` that gives a warning Fixes #99654. A trivial linting fix for a Stdio example. `@rustbot` label +T-lib
2022-07-24Rollup merge of #99644 - RalfJung:interpret-int-ptr-transmute, r=oli-obkRalf Jung-90/+57
remove some provenance-related machine hooks that Miri no longer needs Then we can make `scalar_to_ptr` a method on `Scalar`. :) Fixes https://github.com/rust-lang/miri/issues/2188 r? `@oli-obk`
2022-07-24Auto merge of #99409 - tmiasko:atomic-tests, r=m-ou-sebors-1/+109
Test codegen of atomic compare-exchange with additional memory orderings * Add a test for atomic operations introduced in #97423 & #98383. * Add a test for fallback code generation strategy used on LLVM 12 introduced in #98385. Use a separate test case instead of a revision system since test will be gone once LLVM 12 is no longer supported.
2022-07-24Make macros test order-resistantAmos Wenger-2/+7
2022-07-24Update doc comments that refer to config parameterDaniel Bevenius-2/+2
This commit updates the source_file_to_parser and the maybe_source_file_to_parse function's doc comments which currently refer to a config parameter. The doc comments have been updated to refer to the 'session' parameter similar to the doc comment for try_file_to_source_file, which also takes a &Session parameter.
2022-07-24Sort when iterating through CrateGraphAmos Wenger-18/+15
2022-07-24Sort in DefMap::dump, since HashMap iteration order isn't definedAmos Wenger-34/+33
2022-07-24hir-def tests: sort results before comparing, since FxHashSet iteration ↵Amos Wenger-25/+28
order isn't guaranteed (And, in fact, it failed on i686)
2022-07-24Auto merge of #99670 - Amanieu:revert-99595, r=nikicbors-2/+1
Revert "Mark atomics as unsupported on thumbv6m" This is a breaking change for the `thumbv6m` target. See #99668 for discussion on how we can proceed forward from here. This reverts commit 75146102197c7f35e6c38cb402b2bc1065858c54. cc `@nikic`
2022-07-24Don't overwrite CodegenFnAttrs when adding used compiler/linkerThom Chiovoloni-1/+1
2022-07-24Remove Clean trait implementation for ConstantGuillaume Gomez-26/+27
2022-07-24Remove Clean trait implementation for FieldDefGuillaume Gomez-27/+28
2022-07-24Revert "Mark atomics as unsupported on thumbv6m"Amanieu d'Antras-2/+1
This reverts commit 75146102197c7f35e6c38cb402b2bc1065858c54.
2022-07-24Fix .gitattributes for test_dataAmos Wenger-224/+225
2022-07-24Auto merge of #93429 - fee1-dead-contrib:allow-super-trait-tilde-const, ↵bors-12/+153
r=oli-obk Allow `trait A: ~const B` What's included: a minimal working change set for `~const` supertraits to work. r? `@oli-obk`
2022-07-24Small fixupsJoshua Nelson-6/+8
- use `path` instead of `paths` - don't mark rust-analyzer as an optional tool - print the cargo command that's run in the proc-macro-test build script this originally was part of a change to fix `test --stage 0 rust-analyzer`, but I'm going to leave that for a separate PR so it's easier to review.
2022-07-24Move cfg attrs up to the mod definitions to disable sourcegenAmos Wenger-32/+7
2022-07-24Disable all source-gen tests at compile timeAmos Wenger-5/+63
2022-07-24Don't run slow tests in Rust CI, only RA CIAmos Wenger-3/+8
2022-07-24Add comment about CARGO_WORKSPACE_DIRAmos Wenger-0/+2
2022-07-24Use top-level path in tool StepAmos Wenger-1/+1
2022-07-24Allow cross-compiling, build all cratesAmos Wenger-3/+3
2022-07-24Use compiler.stageAmos Wenger-1/+1
Co-authored-by: Joshua Nelson <github@jyn.dev>
2022-07-24Add test step for rust-analyzer, run it by defaultAmos Wenger-0/+50
2022-07-24Check only tests and benches, not examplesAmos Wenger-2/+5
2022-07-24Add check step, stuck on 'no output generated for libgoto_def-hash rmeta'Amos Wenger-0/+60
2022-07-24Convert rust-analyzer to 'in-tree' tool, pass 'in-rust-tree' feature by defaultAmos Wenger-4/+47
2022-07-24Add 'src/tools/rust-analyzer/' from commit ↵Amos Wenger-0/+345854
'977e12a0bdc3e329af179ef3a9d466af9eb613bb' git-subtree-dir: src/tools/rust-analyzer git-subtree-mainline: 3c98486a0cdb6d92f0fca34ffb1fd46c0e498653 git-subtree-split: 977e12a0bdc3e329af179ef3a9d466af9eb613bb