]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agoAuto merge of #68525 - tlively:emcc-codegen-sigsegv-66308, r=alexcrichton
bors [Sat, 25 Jan 2020 16:34:53 +0000 (16:34 +0000)]
Auto merge of #68525 - tlively:emcc-codegen-sigsegv-66308, r=alexcrichton

Update LLVM to fix crash on Emscripten targets

Fixes #66308 (for real this time). r? @alexcrichton

4 years agoAuto merge of #68516 - oli-obk:spaces, r=eddyb
bors [Sat, 25 Jan 2020 13:14:59 +0000 (13:14 +0000)]
Auto merge of #68516 - oli-obk:spaces, r=eddyb

Render const pointers in MIR more compactly

Split out from #67133 to make that PR simpler

cc @RalfJung

r? @eddyb

4 years agoAuto merge of #68448 - maurer:dyn-cdylib, r=alexcrichton
bors [Sat, 25 Jan 2020 07:49:40 +0000 (07:49 +0000)]
Auto merge of #68448 - maurer:dyn-cdylib, r=alexcrichton

rustc: Allow cdylibs to link against dylibs

Previously, rustc mandated that cdylibs could only link against rlibs as dependencies (not dylibs).
This commit disables that restriction and tests that it works in a simple case.

I don't have a windows rustc dev environment, so I guessed at the MSVC test code, I'm hoping the CI can run that for me.

Additionally, we might want to consider emitting (through cargo or rustc) some metadata to help C users of a cdylib figure out where all the dylibs they need are. I don't think that should be needed to land this change, as it will still be usable by homogeneous build systems without it.

My new test was templated off the `tests/run-make-fulldeps/cdylib` test. It seemed more appropriate to have it as a separate test, since both foo.rs and bar.rs would need to be replicated to make that test cover both cases, but I can do that if it would be preferred.

If I'm doing anything out of order/process, please let me know; this is only my second change to rustc and the prior one was trivial.

r? alexcrichton

4 years agoAuto merge of #68269 - csmoe:temp, r=estebank
bors [Sat, 25 Jan 2020 04:42:56 +0000 (04:42 +0000)]
Auto merge of #68269 - csmoe:temp, r=estebank

Suggest to shorten temporary borrow from raw pointer

Closes https://github.com/rust-lang/rust/issues/65436
r? @estebank
cc @tmandry

4 years agoAuto merge of #68526 - JohnTitor:rollup-3mmljof, r=JohnTitor
bors [Fri, 24 Jan 2020 23:04:54 +0000 (23:04 +0000)]
Auto merge of #68526 - JohnTitor:rollup-3mmljof, r=JohnTitor

Rollup of 6 pull requests

Successful merges:

 - #68111 (Print constants in `type_name` for const generics)
 - #68374 (Fix invalid link to the C++ Exception Handling ABI documentation)
 - #68504 (Use check-pass mode for lint tests and nll tests)
 - #68509 (Clean up error codes E0223 and E0225 explanations)
 - #68511 (Remove unused ignore-license directives)
 - #68515 (Support feature process_set_argv0 for VxWorks)

Failed merges:

r? @ghost

4 years agoRollup merge of #68515 - Wind-River:master_2020, r=alexcrichton
Yuki Okushi [Fri, 24 Jan 2020 22:45:18 +0000 (07:45 +0900)]
Rollup merge of #68515 - Wind-River:master_2020, r=alexcrichton

Support feature process_set_argv0 for VxWorks

r? @alexcrichton

4 years agoRollup merge of #68511 - tmiasko:ignore-license, r=alexcrichton
Yuki Okushi [Fri, 24 Jan 2020 22:45:16 +0000 (07:45 +0900)]
Rollup merge of #68511 - tmiasko:ignore-license, r=alexcrichton

Remove unused ignore-license directives

The tidy check was removed in rust-lang/rust#53617

4 years agoRollup merge of #68509 - GuillaumeGomez:clean-up-err-codes-e0223-e0225, r=Dylan-DPC
Yuki Okushi [Fri, 24 Jan 2020 22:45:15 +0000 (07:45 +0900)]
Rollup merge of #68509 - GuillaumeGomez:clean-up-err-codes-e0223-e0225, r=Dylan-DPC

Clean up error codes E0223 and E0225 explanations

r? @Dylan-DPC

4 years agoRollup merge of #68504 - tmiasko:check-pass, r=alexcrichton
Yuki Okushi [Fri, 24 Jan 2020 22:45:13 +0000 (07:45 +0900)]
Rollup merge of #68504 - tmiasko:check-pass, r=alexcrichton

Use check-pass mode for lint tests and nll tests

Helps with issue #62277.

4 years agoRollup merge of #68374 - gitletH:patch-1, r=nikomatsakis
Yuki Okushi [Fri, 24 Jan 2020 22:45:11 +0000 (07:45 +0900)]
Rollup merge of #68374 - gitletH:patch-1, r=nikomatsakis

Fix invalid link to the C++ Exception Handling ABI documentation

The original link is longer valid(404). I am assuming it's meant to be pointed to the Itanium C++ Exception Handling ABI documentation.

4 years agoRollup merge of #68111 - varkor:const-generics-type_name, r=oli-obk
Yuki Okushi [Fri, 24 Jan 2020 22:45:10 +0000 (07:45 +0900)]
Rollup merge of #68111 - varkor:const-generics-type_name, r=oli-obk

Print constants in `type_name` for const generics

Fixes https://github.com/rust-lang/rust/issues/65372.

r? @oli-obk as there may have been a deliberate decision not to in https://github.com/rust-lang/rust/commit/5b9848912a85e28d000602fc2e81bad9c2f2a981#diff-4ed1a72c0bfdf17be769ed520932cd02R80.

4 years agoNew fix
Thomas Lively [Fri, 24 Jan 2020 19:12:33 +0000 (11:12 -0800)]
New fix

4 years agoAdd opt-level=0 to test
Thomas Lively [Fri, 24 Jan 2020 18:25:30 +0000 (10:25 -0800)]
Add opt-level=0 to test

4 years agoUpdate LLVM to fix crash on Emscripten targets
Thomas Lively [Tue, 7 Jan 2020 15:03:45 +0000 (07:03 -0800)]
Update LLVM to fix crash on Emscripten targets

Adds a small Rust regression test for #66308.

r? @alexcrichton

4 years agoSupport feature process_set_argv0 for VxWorks
BaoshanPang [Fri, 17 Jan 2020 17:29:09 +0000 (09:29 -0800)]
Support feature process_set_argv0 for VxWorks

4 years agoAuto merge of #68494 - matthewjasper:internal-static-ptrs, r=nikomatsakis
bors [Fri, 24 Jan 2020 17:18:36 +0000 (17:18 +0000)]
Auto merge of #68494 - matthewjasper:internal-static-ptrs, r=nikomatsakis

Make pointers to statics internal

Closes #67611

r? @nikomatsakis

4 years agoPrint constants in `type_name` for const generics
varkor [Fri, 24 Jan 2020 16:22:24 +0000 (16:22 +0000)]
Print constants in `type_name` for const generics

4 years agoRender const pointers in MIR more compactly
Oliver Scherer [Mon, 23 Dec 2019 16:41:06 +0000 (17:41 +0100)]
Render const pointers in MIR more compactly

4 years agoAuto merge of #68414 - michaelwoerister:share-drop-glue, r=alexcrichton
bors [Fri, 24 Jan 2020 14:00:56 +0000 (14:00 +0000)]
Auto merge of #68414 - michaelwoerister:share-drop-glue, r=alexcrichton

Also share drop-glue when compiling with -Zshare-generics (i.e. at opt-level=0)

This PR adds drop-glue to the set of monomorphizations that can be shared across crates via `-Zshare-generics`.

This version of the PR might have detrimental effects on performance as it makes lots of stuff dependent on a single query results (`upstream_monomorphizations_for(def_id_of_drop_in_place)`). That should be fixable but let's do a perf run first.

Potentially fixes issue https://github.com/rust-lang/rust/issues/64140. (cc @alexcrichton)
The changes here are related to @matthewjasper's https://github.com/rust-lang/rust/pull/67332 but should be mostly orthogonal.

r? @ghost

4 years agoClean up error codes E0223 and E0225 explanations
Guillaume Gomez [Fri, 24 Jan 2020 11:56:32 +0000 (12:56 +0100)]
Clean up error codes E0223 and E0225 explanations

4 years agoAuto merge of #68506 - tmandry:rollup-kz9d33v, r=tmandry
bors [Fri, 24 Jan 2020 08:32:10 +0000 (08:32 +0000)]
Auto merge of #68506 - tmandry:rollup-kz9d33v, r=tmandry

Rollup of 7 pull requests

Successful merges:

 - #68424 (Suggest borrowing `Vec<NonCopy>` in for loop)
 - #68438 (Account for non-types in substs for opaque type error messages)
 - #68469 (Avoid overflow in `std::iter::Skip::count`)
 - #68473 (Enable ASan on Fuchsia)
 - #68479 (Implement `unused_parens` for block return values)
 - #68483 (Add my (@flip1995) name to .mailmap)
 - #68500 (Clear out std, not std tools)

Failed merges:

r? @ghost

4 years agoRollup merge of #68500 - Mark-Simulacrum:fix-bootstrap-clearing, r=alexcrichton
Tyler Mandry [Fri, 24 Jan 2020 08:31:02 +0000 (00:31 -0800)]
Rollup merge of #68500 - Mark-Simulacrum:fix-bootstrap-clearing, r=alexcrichton

Clear out std, not std tools

This was a typo that slipped in, and meant that we were still not properly
clearing out std.

This is basically #67760 but actually correct...

4 years agoRollup merge of #68483 - flip1995:mailmap, r=Dylan-DPC
Tyler Mandry [Fri, 24 Jan 2020 08:31:00 +0000 (00:31 -0800)]
Rollup merge of #68483 - flip1995:mailmap, r=Dylan-DPC

Add my (@flip1995) name to .mailmap

4 years agoRollup merge of #68479 - Tyg13:unused_parens_return, r=Centril
Tyler Mandry [Fri, 24 Jan 2020 08:30:59 +0000 (00:30 -0800)]
Rollup merge of #68479 - Tyg13:unused_parens_return, r=Centril

Implement `unused_parens` for block return values

Fixes #68386

r? @Centril

4 years agoRollup merge of #68473 - nopsledder:rust_sanitizer_fuchsia, r=alexcrichton
Tyler Mandry [Fri, 24 Jan 2020 08:30:58 +0000 (00:30 -0800)]
Rollup merge of #68473 - nopsledder:rust_sanitizer_fuchsia, r=alexcrichton

Enable ASan on Fuchsia

This change adds the x86_64-fuchsia and aarch64-fuchsia LLVM targets to
those allowed to invoke -Zsanitizer. Currently, the only overlap between
compiler_rt sanitizers supported by both rustc and Fuchsia is ASan.

4 years agoRollup merge of #68469 - ollie27:skip_count, r=sfackler
Tyler Mandry [Fri, 24 Jan 2020 08:30:56 +0000 (00:30 -0800)]
Rollup merge of #68469 - ollie27:skip_count, r=sfackler

Avoid overflow in `std::iter::Skip::count`

The call to `count` on the inner iterator can overflow even if `Skip` itself would return less that `usize::max_value()` items.

Fixes #68139

4 years agoRollup merge of #68438 - Aaron1011:fix/tait-non-defining, r=estebank
Tyler Mandry [Fri, 24 Jan 2020 08:30:55 +0000 (00:30 -0800)]
Rollup merge of #68438 - Aaron1011:fix/tait-non-defining, r=estebank

Account for non-types in substs for opaque type error messages

Fixes #68368

Previously, I assumed that the substs contained only types, which caused
the computed index number to be wrong.

4 years agoRollup merge of #68424 - estebank:suggest-borrow-for-non-copy-vec, r=davidtwco
Tyler Mandry [Fri, 24 Jan 2020 08:30:53 +0000 (00:30 -0800)]
Rollup merge of #68424 - estebank:suggest-borrow-for-non-copy-vec, r=davidtwco

Suggest borrowing `Vec<NonCopy>` in for loop

Partially address #64167.

4 years agoClear out std, not std tools
Mark Rousskov [Fri, 24 Jan 2020 01:29:42 +0000 (20:29 -0500)]
Clear out std, not std tools

This was a typo that slipped in, and meant that we were still not properly
clearing out std.

4 years agoRemove unused ignore-license directives
Tomasz Miąsko [Fri, 24 Jan 2020 00:00:00 +0000 (00:00 +0000)]
Remove unused ignore-license directives

The tidy check was removed in rust-lang/rust#53617

4 years agoAuto merge of #68012 - alexcrichton:update-some-deps, r=Mark-Simulacrum
bors [Thu, 23 Jan 2020 23:44:51 +0000 (23:44 +0000)]
Auto merge of #68012 - alexcrichton:update-some-deps, r=Mark-Simulacrum

Update some of Cargo's dependencies

This is primarily updating the `curl` dependency, but also went ahead
and applied a few updates for other packages that Cargo depends on.

4 years agoUpdate some of Cargo's dependencies
Alex Crichton [Wed, 8 Jan 2020 15:33:57 +0000 (07:33 -0800)]
Update some of Cargo's dependencies

This is primarily updating the `curl` dependency, but also went ahead
and applied a few updates for other packages that Cargo depends on.

4 years agoMake pointers to statics internal
Matthew Jasper [Thu, 23 Jan 2020 20:34:11 +0000 (20:34 +0000)]
Make pointers to statics internal

4 years agorustc: Allow cdylibs to link against dylibs
Matthew Maurer [Wed, 22 Jan 2020 06:47:03 +0000 (22:47 -0800)]
rustc: Allow cdylibs to link against dylibs

Previously, rustc mandated that cdylibs could only link against rlibs as
dependencies (not dylibs).
This commit disables that restriction and tests that it works in a
simple case.

4 years agouse `diagnostic_item` and modify wording
Esteban Küber [Thu, 23 Jan 2020 19:51:56 +0000 (11:51 -0800)]
use `diagnostic_item` and modify wording

4 years agoAuto merge of #68391 - tmiasko:compiletest-debuginfo, r=alexcrichton
bors [Thu, 23 Jan 2020 19:39:07 +0000 (19:39 +0000)]
Auto merge of #68391 - tmiasko:compiletest-debuginfo, r=alexcrichton

compiletest: Simplify multi-debugger support

Previous implementation used a single mode type to store various pieces
of otherwise loosely related information:

* Whether debuginfo mode is in use or not.
* Which debuggers should run in general.
* Which debuggers are enabled for particular test case.

The new implementation introduces a separation between those aspects.
There is a single debuginfo mode parametrized by a debugger type.
The debugger detection is performed first and a separate configuration
is created for each detected debugger. The test cases are gathered
independently for each debugger which makes it trivial to implement
support for `ignore` / `only` conditions.

Functional changes:

* A single `debuginfo` entry point (rather than `debuginfo-cdb`, `debuginfo-gdb+lldb`, etc.).
* Debugger name is included in the test name.
* Test outputs are placed in per-debugger directory.
* Fixed spurious hash mismatch. Previously, the config mode would change
  from `DebugInfoGdbLldb` (when collecting tests) to `DebugInfoGdb` or
  `DebugInfoLldb` (when running them) which would affect hash computation.
* PYTHONPATH is additionally included in gdb hash.
* lldb-python and lldb-python-dir are additionally included in lldb hash.

4 years agoAdd projection query for upstream drop-glue instances.
Michael Woerister [Wed, 22 Jan 2020 11:17:21 +0000 (12:17 +0100)]
Add projection query for upstream drop-glue instances.

This reduces the amount of invalidated data when new types are
add to upstream crates.

4 years agoAdd my (@flip1995) name to .mailmap
flip1995 [Thu, 23 Jan 2020 12:27:36 +0000 (13:27 +0100)]
Add my (@flip1995) name to .mailmap

4 years agoMake drop-glue take advantage of -Zshare-generics.
Michael Woerister [Mon, 20 Jan 2020 15:38:42 +0000 (16:38 +0100)]
Make drop-glue take advantage of -Zshare-generics.

4 years agoAlways just use symbol name for sorting exported symbols.
Michael Woerister [Tue, 21 Jan 2020 13:29:42 +0000 (14:29 +0100)]
Always just use symbol name for sorting exported symbols.

4 years agoMake ExportedSymbols type more local because it's not supposed to be
Michael Woerister [Mon, 20 Jan 2020 14:56:06 +0000 (15:56 +0100)]
Make ExportedSymbols type more local because it's not supposed to be
used outside of the LLVM backend.

4 years agoClarify some methods around instance instantiation via comments and clearer names.
Michael Woerister [Mon, 20 Jan 2020 14:54:40 +0000 (15:54 +0100)]
Clarify some methods around instance instantiation via comments and clearer names.

4 years agocompiletest: Do not run debuginfo tests with gdb on msvc targets
Tomasz Miąsko [Thu, 23 Jan 2020 00:00:00 +0000 (00:00 +0000)]
compiletest: Do not run debuginfo tests with gdb on msvc targets

4 years agoAuto merge of #68435 - tmandry:llvmup-2-the-return-of-phibitcast-transform-fixes...
bors [Thu, 23 Jan 2020 07:26:56 +0000 (07:26 +0000)]
Auto merge of #68435 - tmandry:llvmup-2-the-return-of-phibitcast-transform-fixes, r=alexcrichton

Update LLVM

Fixes #67855 (rust-lang/llvm-project#31)
Fixes #66036 (rust-lang/llvm-project#32)

r? @nikic @alexcrichton

4 years agounused-parens: implement for block return values
Tyler Lanphear [Thu, 23 Jan 2020 05:42:35 +0000 (00:42 -0500)]
unused-parens: implement for block return values

4 years agoAuto merge of #68298 - Mark-Simulacrum:binary-depdep-fix, r=petrochenkov
bors [Thu, 23 Jan 2020 03:48:07 +0000 (03:48 +0000)]
Auto merge of #68298 - Mark-Simulacrum:binary-depdep-fix, r=petrochenkov

Avoid declaring a fake dependency edge

When we're producing an rlib, we do not need anything more than an rmeta file
for each of our dependencies (this is indeed utilized by Cargo for pipelining).
Previously, we were still storing the paths of possible rlib/dylib crates, which
meant that they could still plausibly be accessed. With -Zbinary-dep-depinfo,
that meant that Cargo thought that rustc was using both the rlib and an (earlier
emitted) rmeta, and so needed a recompile, as the rlib may have finished writing
*after* compilation started (for more detail, see issue 68149).

This commit changes metadata loading to not store the filepaths of dylib/rlib if
we're going to end up creating an rlib only.

Fixes #68149.

4 years agoAuto merge of #68474 - tmandry:rollup-6gmbet6, r=tmandry
bors [Thu, 23 Jan 2020 00:04:33 +0000 (00:04 +0000)]
Auto merge of #68474 - tmandry:rollup-6gmbet6, r=tmandry

Rollup of 10 pull requests

Successful merges:

 - #67195 ([experiment] Add `-Z no-link` flag)
 - #68253 (add bare metal ARM Cortex-A targets to rustc)
 - #68361 (Unbreak linking with lld 9 on FreeBSD 13.0-CURRENT i386)
 - #68388 (Make `TooGeneric` error in WF checking a proper error)
 - #68409 (Micro-optimize OutputFilenames)
 - #68410 (Export weak symbols used by MemorySanitizer)
 - #68425 (Fix try-op diagnostic in E0277 for methods)
 - #68440 (bootstrap: update clippy subcmd decription)
 - #68441 (pprust: use as_deref)
 - #68462 (librustc_mir: don't allocate vectors where slices will do.)

Failed merges:

r? @ghost

4 years agoRollup merge of #68462 - matthiaskrgr:novec, r=varkor
Tyler Mandry [Thu, 23 Jan 2020 00:02:24 +0000 (16:02 -0800)]
Rollup merge of #68462 - matthiaskrgr:novec, r=varkor

librustc_mir: don't allocate vectors where slices will do.

4 years agoRollup merge of #68441 - Centril:pprust-as_deref, r=Mark-Simulacrum
Tyler Mandry [Thu, 23 Jan 2020 00:02:20 +0000 (16:02 -0800)]
Rollup merge of #68441 - Centril:pprust-as_deref, r=Mark-Simulacrum

pprust: use as_deref

Some drive-by cleanup.

4 years agoRollup merge of #68440 - matthiaskrgr:xpyclippy, r=Mark-Simulacrum
Tyler Mandry [Thu, 23 Jan 2020 00:02:19 +0000 (16:02 -0800)]
Rollup merge of #68440 - matthiaskrgr:xpyclippy, r=Mark-Simulacrum

bootstrap: update clippy subcmd decription

Clarify where the clippy used in `./x.py clippy` is coming from.
It uses whatever clippy binary was installed via rustup, cargo-install
or otherwise and does NOT use the binary generated by `./x.py build src/tools/clippy`.

4 years agoRollup merge of #68425 - phi-gamma:try-method, r=varkor
Tyler Mandry [Thu, 23 Jan 2020 00:02:17 +0000 (16:02 -0800)]
Rollup merge of #68425 - phi-gamma:try-method, r=varkor

Fix try-op diagnostic in E0277 for methods

For methods the try-op diagnostic displays the empty string where
it has more descriptive strings like “a function” otherwise:

    error[E0277]: the `?` operator can only be used in  that returns `Result` or `Option` (or another type that implements `std::ops::Try`)
                                                      ^^
       | |             ^^ cannot use the `?` operator in  that returns `()`
                                                        ^^

I’m seeing this on nightly (rustc 1.42.0-nightly (b5a3341f1
2020-01-20)) and [on the playpen](https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=0e7ce7792c2aceb8056941710d539124).

The changeset add strings for impl methods and trait provided
methods and test cases for the option type.

4 years agoRollup merge of #68410 - tmiasko:msan-lto, r=varkor
Tyler Mandry [Thu, 23 Jan 2020 00:02:16 +0000 (16:02 -0800)]
Rollup merge of #68410 - tmiasko:msan-lto, r=varkor

Export weak symbols used by MemorySanitizer

Export weak symbols defined by MemorySanitizer instrumentation, which are used
to implement `-Zsanitizer-memory-track-origins` and `-Zsanitizer-recover=memory`.
Previously, when using fat LTO, they would internalized and eliminated.

Fixes #68367.

4 years agoRollup merge of #68409 - sinkuu:temp_path, r=Mark-Simulacrum
Tyler Mandry [Thu, 23 Jan 2020 00:02:14 +0000 (16:02 -0800)]
Rollup merge of #68409 - sinkuu:temp_path, r=Mark-Simulacrum

Micro-optimize OutputFilenames

For example, its methods consume 6% of time during debug-compiling a `warp` example:
![Screenshot (debug-compiling a `warp` example)](https://user-images.githubusercontent.com/7091080/72780288-d74f1580-3c61-11ea-953b-34e59ca682f9.png)

This PR optimize them a bit by using `PathBuf::set_extension` instead of `Path::with_extension`, to avoid cloning `PathBuf` excessively.

4 years agoRollup merge of #68388 - varkor:toogeneric-wf, r=eddyb
Tyler Mandry [Thu, 23 Jan 2020 00:02:13 +0000 (16:02 -0800)]
Rollup merge of #68388 - varkor:toogeneric-wf, r=eddyb

Make `TooGeneric` error in WF checking a proper error

`TooGeneric` is encountered during WF checking when we cannot determine that a constant involving a generic parameter will always be evaluated successfully (rather than resulting in an error). In these cases, the burden of proof should be with the caller, so that we can avoid post-monomorphisation tim errors (which was the previous previous behaviour). This commit ensures that this situation produces a proper compiler error, rather than silently ignoring it or ICEing.

Fixes https://github.com/rust-lang/rust/issues/66962.

r? @eddyb

4 years agoRollup merge of #68361 - t6:patch-freebsd-lld-i386, r=alexcrichton
Tyler Mandry [Thu, 23 Jan 2020 00:02:11 +0000 (16:02 -0800)]
Rollup merge of #68361 - t6:patch-freebsd-lld-i386, r=alexcrichton

Unbreak linking with lld 9 on FreeBSD 13.0-CURRENT i386

Add -Wl,-znotext to default linker flags to link with lld 9 on FreeBSD 13.0-CURRENT i386 where rust-nightly has been failing to link since 2019-12-10 with variations of
```
 = note: ld: error: relocation R_386_PC32 cannot be used against symbol __rust_probestack; recompile with -fPIC
          >>> defined in /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libcompiler_builtins-6570a75fe85f0e1a.rlib(compiler_builtins-6570a75fe85f0e1a.compiler_builtins.2i519eqi-cgu.15.rcgu.o)
          >>> referenced by std.4xivr03c-cgu.14
          >>>               std-9bd70afd58e204b7.std.4xivr03c-cgu.14.rcgu.o:(_$LT$alloc..boxed..Box$LT$F$GT$$u20$as$u20$core..ops..function..FnOnce$LT$A$GT$$GT$::call_once::h1c78ed6e734a2bfc (.llvm.10122419023709863394)) in archive /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libstd-9bd70afd58e204b7.rlib

          ld: error: relocation R_386_PC32 cannot be used against symbol __rust_probestack; recompile with -fPIC
          >>> defined in /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libcompiler_builtins-6570a75fe85f0e1a.rlib(compiler_builtins-6570a75fe85f0e1a.compiler_builtins.2i519eqi-cgu.15.rcgu.o)
          >>> referenced by std.4xivr03c-cgu.14
          >>>               std-9bd70afd58e204b7.std.4xivr03c-cgu.14.rcgu.o:(std::io::util::copy::h9115f048f2203467) in archive /wrkdirs/usr/ports/lang/rust-nightly/work/rustc-nightly-src/build/i686-unknown-freebsd/stage1/lib/rustlib/i686-unknown-freebsd/lib/libstd-9bd70afd58e204b7.rlib
          clang-cpp: error: linker command failed with exit code 1 (use -v to see invocation)

error: aborting due to previous error

error: could not compile `rustc_macros`.
```
Full log: http://beefy17.nyi.freebsd.org/data/head-i386-default/p523508_s356869/logs/rust-nightly-1.42.0.20200118.log

AFAICT it stopped building after bumping compiler_builtins to 0.1.22 in https://github.com/rust-lang/rust/pull/67110.

4 years agoRollup merge of #68253 - japaric:bare-metal-cortex-a, r=alexcrichton
Tyler Mandry [Thu, 23 Jan 2020 00:02:09 +0000 (16:02 -0800)]
Rollup merge of #68253 - japaric:bare-metal-cortex-a, r=alexcrichton

add bare metal ARM Cortex-A targets to rustc

-> `rustc --target armv7a-none-eabi` will work

also build rust-std (rustup) components for them

-> `rustup target add armv7a-none-eabi` will work

this completes our bare-metal support of ARMv7 cores on stable Rust (by 1.42 or 1.43)

(these target specifications have been tested on a real (no emulation / QEMU) [Cortex-A7 core](https://github.com/iqlusioninc/usbarmory.rs/))

4 years agoRollup merge of #67195 - 0dvictor:nolink, r=tmandry
Tyler Mandry [Thu, 23 Jan 2020 00:02:08 +0000 (16:02 -0800)]
Rollup merge of #67195 - 0dvictor:nolink, r=tmandry

[experiment] Add `-Z no-link` flag

Adds a compiler option to allow rustc compile a crate without linking.
With this flag, `rustc` serializes codegen_results into a `.rlink` file.

Part of Issue #64191

4 years agoAdd `-Z no-link` flag
Victor Ding [Sat, 21 Dec 2019 10:37:15 +0000 (21:37 +1100)]
Add `-Z no-link` flag

Adds a compiler option to allow rustc compile a crate without linking.
With this flag, rustc serializes codegen_results into a .rlink file.

4 years agoUse check-pass mode for lint tests
Tomasz Miąsko [Thu, 23 Jan 2020 00:00:00 +0000 (00:00 +0000)]
Use check-pass mode for lint tests

4 years agoUse check-pass mode for nll tests
Tomasz Miąsko [Thu, 23 Jan 2020 00:00:00 +0000 (00:00 +0000)]
Use check-pass mode for nll tests

4 years agoFix tidy warnings
Aaron Green [Wed, 22 Jan 2020 23:34:39 +0000 (15:34 -0800)]
Fix tidy warnings

4 years agoEnable ASan on Fuchsia
Aaron Green [Wed, 15 Jan 2020 23:48:53 +0000 (15:48 -0800)]
Enable ASan on Fuchsia

This change adds the x86_64-fuchsia and aarch64-fuchsia LLVM targets to
those allowed to invoke -Zsanitizer. Currently, the only overlap between
compiler_rt sanitizers supported by both rustc and Fuchsia is ASan.

4 years agoAvoid overflow in `std::iter::Skip::count`
Oliver Middleton [Wed, 22 Jan 2020 20:28:28 +0000 (20:28 +0000)]
Avoid overflow in `std::iter::Skip::count`

The call to `count` on the inner iterator can overflow even if `Skip` itself would return less that `usize::max_value()` items.

4 years agoAuto merge of #68192 - GuillaumeGomez:remove-inlined-types, r=kinnison
bors [Wed, 22 Jan 2020 18:04:56 +0000 (18:04 +0000)]
Auto merge of #68192 - GuillaumeGomez:remove-inlined-types, r=kinnison

Remove usage of global variable "inlined_types"

r? @pietroalbini

4 years agolibrustc_mir: don't allocate vectors where slices will do.
Matthias Krüger [Wed, 22 Jan 2020 16:19:26 +0000 (17:19 +0100)]
librustc_mir: don't allocate vectors where slices will do.

4 years agoAuto merge of #68069 - JohnTitor:fix-closure-ice, r=matthewjasper
bors [Wed, 22 Jan 2020 13:10:49 +0000 (13:10 +0000)]
Auto merge of #68069 - JohnTitor:fix-closure-ice, r=matthewjasper

Attempt to fix ICE #68025

Fixes #68025

4 years agoAuto merge of #68194 - jonas-schievink:fix-thumb-ci, r=alexcrichton
bors [Wed, 22 Jan 2020 09:49:03 +0000 (09:49 +0000)]
Auto merge of #68194 - jonas-schievink:fix-thumb-ci, r=alexcrichton

Fix CI for embedded ARM targets

Closes https://github.com/rust-lang/rust/issues/67018

It would be better to move the `thumb-none-cortex-m` test into the `cargotest` suite, but it doesn't seem to support cross-compilation.

4 years agoAuto merge of #68442 - Centril:rollup-ir2vmid, r=Centril
bors [Wed, 22 Jan 2020 00:50:48 +0000 (00:50 +0000)]
Auto merge of #68442 - Centril:rollup-ir2vmid, r=Centril

Rollup of 3 pull requests

Successful merges:

 - #68421 (Update cargo, books)
 - #68422 (typeck: simplify the handling of `diverges`)
 - #68439 (Update Clippy)

Failed merges:

r? @ghost

4 years agoRollup merge of #68439 - JohnTitor:clippy-up, r=JohnTitor
Mazdak Farrokhzad [Wed, 22 Jan 2020 00:50:12 +0000 (01:50 +0100)]
Rollup merge of #68439 - JohnTitor:clippy-up, r=JohnTitor

Update Clippy

Fixes #68431

r? @ghost

4 years agoRollup merge of #68422 - Centril:diverges-simplify, r=eddyb
Mazdak Farrokhzad [Wed, 22 Jan 2020 00:50:10 +0000 (01:50 +0100)]
Rollup merge of #68422 - Centril:diverges-simplify, r=eddyb

typeck: simplify the handling of `diverges`

Some drive-by cleanup while working on `hir::ExprKind::Let`.
Ostensibly, this has some perf benefits due to reduced allocation and whatnot as well.

r? @eddyb

4 years agoRollup merge of #68421 - ehuss:update-cargo-books, r=alexcrichton
Mazdak Farrokhzad [Wed, 22 Jan 2020 00:50:09 +0000 (01:50 +0100)]
Rollup merge of #68421 - ehuss:update-cargo-books, r=alexcrichton

Update cargo, books

## cargo

9 commits in ad3dbe10e1e654fb1f032a5dd9481d7cbaa00d65..f6449ba236db31995255ac5e4cad4ab88296a7c6
2020-01-13 21:37:15 +0000 to 2020-01-21 16:15:39 +0000
- Fix wrong directories in host_libdir. (rust-lang/cargo#7798)
- Update humantime requirement from 1.2.0 to 2.0.0 (rust-lang/cargo#7815)
- Fix doc_target test which no longer works on stable/beta. (rust-lang/cargo#7817)
- Fix some erroneous em-dashes in man pages. (rust-lang/cargo#7814)
- fix some clippy warnings (rust-lang/cargo#7808)
- Don't assume iowait always increases on Linux (rust-lang/cargo#7803)
- Add and update some doc comments. (rust-lang/cargo#7800)
- Consistently use em-dash in environment documentation page. (rust-lang/cargo#7799)
- Load credentials only when needed (rust-lang/cargo#7774)

## reference

3 commits in e1157538e86d83df0cf95d5e33bd943f80d0248f..11e893fc1357bc688418ddf1087c2b7aa25d154d
2019-12-22 13:13:14 +0100 to 2020-01-18 21:24:08 +0100
- Small improvements to types/pointer.md (rust-lang-nursery/reference#726)
- repr(transparent): mention align=1 requirement (rust-lang-nursery/reference#737)
- Elaborate on how to use an extern static correctly (rust-lang-nursery/reference#736)

## book

4 commits in 5c5cfd2e94cd42632798d9bd3d1116133e128ac9..87dd6843678575f8dda962f239d14ef4be14b352
2019-12-16 09:27:21 -0600 to 2020-01-20 15:20:40 -0500
- Fix listing numbers (rust-lang/book#2227)
- Move `async` and `await` keywords to 'Currently in Use' (rust-lang/book#2140)
- More cleanup - remove unneeded files (rust-lang/book#2213)
- Small cleanups extracted from the bigger pr i'm working on (rust-lang/book#2212)

## rust-by-example

1 commits in 1d59403cb5269c190cc52a95584ecc280345495a..1c2bd024d13f8011307e13386cf1fea2180352b5
2019-12-27 08:27:05 -0300 to 2020-01-20 12:18:36 -0300
- CamelCase -&gt; UpperCamelCase (rust-lang/rust-by-example#1302)

## embedded-book

1 commits in 9493b7d4dc97eda439bd8780f05ad7b234cd1cd7..4d78994915af1bde9a95c04a8c27d8dca066232a
2019-12-27 20:05:00 +0000 to 2020-01-14 08:25:25 +0000
- Update .gitattributes  (rust-embedded/book#221)

4 years agopprust: use as_deref
Mazdak Farrokhzad [Wed, 22 Jan 2020 00:38:05 +0000 (01:38 +0100)]
pprust: use as_deref

4 years agobootstrap: update clippy subcmd decription
Matthias Krüger [Wed, 22 Jan 2020 00:02:32 +0000 (01:02 +0100)]
bootstrap: update clippy subcmd decription

Clarify where the clippy used in `./x.py clippy` is coming from.
It uses whatever clippy binary was installed via rustup, cargo-install
or otherwise and does NOT use the binary generated by `./x.py build src/tools/clippy`.

4 years agoUpdate Clippy
Yuki Okushi [Tue, 21 Jan 2020 23:53:31 +0000 (08:53 +0900)]
Update Clippy

4 years agoAccount for non-types in substs for opaque type error messages
Aaron Hill [Tue, 21 Jan 2020 23:49:01 +0000 (18:49 -0500)]
Account for non-types in substs for opaque type error messages

Fixes #68368

Previously, I assumed that the substs contained only types, which caused
the computed index number to be wrong.

4 years agoUpdate LLVM
Tyler Mandry [Fri, 17 Jan 2020 00:18:51 +0000 (16:18 -0800)]
Update LLVM

Fixes #67855 (rust-lang/llvm-project#31)
Fixes #66036 (rust-lang/llvm-project#32)

4 years agoDo not base path to append extension
Mark Rousskov [Tue, 21 Jan 2020 14:57:50 +0000 (09:57 -0500)]
Do not base path to append extension

We already have ownership of the base path, so no need to clone it (within
Path::with_extension).

4 years agoStore filestem in a pre-formatted form
Mark Rousskov [Tue, 21 Jan 2020 14:54:58 +0000 (09:54 -0500)]
Store filestem in a pre-formatted form

4 years agoPrivatize private fields of OutputFilenames
Mark Rousskov [Tue, 21 Jan 2020 14:50:22 +0000 (09:50 -0500)]
Privatize private fields of OutputFilenames

4 years agoCleanup: rewrite conditional as match
Philipp Gesang [Tue, 21 Jan 2020 20:46:38 +0000 (21:46 +0100)]
Cleanup: rewrite conditional as match

As suggested by @Centril.

Signed-off-by: Philipp Gesang <phg@phi-gamma.net>
4 years agoSuggest borrowing `Vec<NonCopy>` in for loop
Esteban Küber [Tue, 21 Jan 2020 19:11:00 +0000 (11:11 -0800)]
Suggest borrowing `Vec<NonCopy>` in for loop

Partially address #64167.

4 years agoAuto merge of #68423 - Centril:rollup-bdjykrv, r=Centril
bors [Tue, 21 Jan 2020 18:55:26 +0000 (18:55 +0000)]
Auto merge of #68423 - Centril:rollup-bdjykrv, r=Centril

Rollup of 7 pull requests

Successful merges:

 - #67686 (Simplify NodeHeader by avoiding slices in BTreeMaps with shared roots)
 - #68140 (Implement `?const` opt-out for trait bounds)
 - #68313 (Options IP_MULTICAST_TTL and IP_MULTICAST_LOOP are 1 byte on BSD)
 - #68328 (Actually pass target LLVM args to LLVM)
 - #68399 (check_match: misc unifications and ICE fixes)
 - #68415 (tidy: fix most clippy warnings)
 - #68416 (lowering: cleanup some hofs)

Failed merges:

r? @ghost

4 years agoRollup merge of #68416 - Centril:lowering-cleanup-hofs, r=pietroalbini
Mazdak Farrokhzad [Tue, 21 Jan 2020 18:42:28 +0000 (19:42 +0100)]
Rollup merge of #68416 - Centril:lowering-cleanup-hofs, r=pietroalbini

lowering: cleanup some hofs

Some drive-by cleanup while working on `let_chains`.

r? @pietroalbini

4 years agoRollup merge of #68415 - matthiaskrgr:tidy_clippy, r=oli-obk
Mazdak Farrokhzad [Tue, 21 Jan 2020 18:42:26 +0000 (19:42 +0100)]
Rollup merge of #68415 - matthiaskrgr:tidy_clippy, r=oli-obk

tidy: fix most clippy warnings

4 years agoRollup merge of #68399 - Centril:check-match-unify, r=oli-obk
Mazdak Farrokhzad [Tue, 21 Jan 2020 18:42:25 +0000 (19:42 +0100)]
Rollup merge of #68399 - Centril:check-match-unify, r=oli-obk

check_match: misc unifications and ICE fixes

These are some unifications made as a by-product of working on `hir::ExprKind::Let`.

Fixes https://github.com/rust-lang/rust/issues/68396.
Fixes https://github.com/rust-lang/rust/issues/68394.
Fixes https://github.com/rust-lang/rust/issues/68393.

r? @oli-obk @matthewjasper

4 years agoRollup merge of #68328 - jethrogb:jb/target-llvm-args, r=alexcrichton
Mazdak Farrokhzad [Tue, 21 Jan 2020 18:42:23 +0000 (19:42 +0100)]
Rollup merge of #68328 - jethrogb:jb/target-llvm-args, r=alexcrichton

Actually pass target LLVM args to LLVM

Missed in #68059

r? @alexcrichton

4 years agoRollup merge of #68313 - batrla:master, r=alexcrichton
Mazdak Farrokhzad [Tue, 21 Jan 2020 18:42:22 +0000 (19:42 +0100)]
Rollup merge of #68313 - batrla:master, r=alexcrichton

Options IP_MULTICAST_TTL and IP_MULTICAST_LOOP are 1 byte on BSD

Options IP_MULTICAST_TTL and IP_MULTICAST_LOOP are 1 byte on BSD and Solaris

See ip(4P) man page:
 IP_MULTICAST_TTL     Time  to live for multicast datagrams. This option
                      takes an unsigned character as  an  argument.  Its
                      value  is  the TTL that IP uses on outgoing multi-
                      cast datagrams. The default is 1.

 IP_MULTICAST_LOOP    Loopback for multicast datagrams. Normally  multi-
                      cast  datagrams  are  delivered  to members on the
                      sending  host  (or  sending  zone).  Setting   the
                      unsigned  character argument to 0 causes the oppo-
                      site behavior, meaning that  when  multiple  zones
                      are  present,  the  datagrams are delivered to all
                      zones except the sending zone.

https://docs.oracle.com/cd/E88353_01/html/E37851/ip-4p.html
https://man.openbsd.org/ip.4

4 years agoRollup merge of #68140 - ecstatic-morse:const-trait-bound-opt-out, r=oli-obk
Mazdak Farrokhzad [Tue, 21 Jan 2020 18:42:20 +0000 (19:42 +0100)]
Rollup merge of #68140 - ecstatic-morse:const-trait-bound-opt-out, r=oli-obk

Implement `?const` opt-out for trait bounds

For now, such bounds are treated exactly the same as unprefixed ones in all contexts. [RFC 2632](https://github.com/rust-lang/rfcs/pull/2632) does not specify whether such bounds are forbidden outside of `const` contexts, so they are allowed at the moment.

Prior to this PR, the constness of a trait bound/impl was stored in `TraitRef`. Now, the constness of an `impl` is stored in `ast::ItemKind::Impl` and the constness of a bound in `ast::TraitBoundModifer`. Additionally, constness of trait bounds is now stored in an additional field of `ty::Predicate::Trait`, and the combination of the constness of the item along with any `TraitBoundModifier` determines the constness of the bound in accordance with the RFC. Encoding the constness of impls at the `ty` level is left for a later PR.

After a discussion in \#wg-grammar on Discord, it was decided that the grammar should not encode the mutual exclusivity of trait bound modifiers. The grammar for trait bound modifiers remains `[?const] [?]`. To encode this, I add a dummy variant to `ast::TraitBoundModifier` that is used when the syntax `?const ?` appears. This variant causes an error in AST validation and disappears during HIR lowering.

cc #67794

r? @oli-obk

4 years agoRollup merge of #67686 - ssomers:keys_start_slasher, r=Mark-Simulacrum
Mazdak Farrokhzad [Tue, 21 Jan 2020 18:42:17 +0000 (19:42 +0100)]
Rollup merge of #67686 - ssomers:keys_start_slasher, r=Mark-Simulacrum

Simplify NodeHeader by avoiding slices in BTreeMaps with shared roots

Simplify a complicated piece of code that creates slices of keys in node leaves.

4 years agoDo not use Cortex-M0 since Qemu is too old
Jonas Schievink [Tue, 21 Jan 2020 13:35:04 +0000 (14:35 +0100)]
Do not use Cortex-M0 since Qemu is too old

4 years agoCheck in lockfile
Jonas Schievink [Tue, 21 Jan 2020 10:37:02 +0000 (11:37 +0100)]
Check in lockfile

4 years agoUpdate dependencies
Jonas Schievink [Tue, 21 Jan 2020 10:12:17 +0000 (11:12 +0100)]
Update dependencies

This fixes a linkage issue that was fixed a while ago, and adds thumbv8
support.

4 years agoUse the right runners for all thumb targets
Jonas Schievink [Tue, 21 Jan 2020 10:11:28 +0000 (11:11 +0100)]
Use the right runners for all thumb targets

4 years agoAccount for run-make tests in `is_up_to_date`
Jonas Schievink [Mon, 13 Jan 2020 23:56:11 +0000 (00:56 +0100)]
Account for run-make tests in `is_up_to_date`

4 years agoFix thumb target CI
Jonas Schievink [Mon, 13 Jan 2020 23:42:19 +0000 (00:42 +0100)]
Fix thumb target CI

4 years agoTest try diagnostics for impl and trait methods
Philipp Gesang [Tue, 21 Jan 2020 20:51:13 +0000 (21:51 +0100)]
Test try diagnostics for impl and trait methods

Signed-off-by: Philipp Gesang <phg@phi-gamma.net>
4 years agoUpdate cargo, books
Eric Huss [Tue, 21 Jan 2020 17:55:43 +0000 (09:55 -0800)]
Update cargo, books

4 years agoHandle methods in try diagnostic
Philipp Gesang [Tue, 21 Jan 2020 20:49:23 +0000 (21:49 +0100)]
Handle methods in try diagnostic

The diagnostic for diagnostic for methods and trait provided
methods would only show the empty string:

    error[E0277]: the `?` operator can only be used in  that returns `Result` or `Option` (or another type that implements `std::ops::Try`)

Handle the missing cases so it reads ``a method'' / ``an async
method'' / ``a trait method'' respectively.

Signed-off-by: Philipp Gesang <phg@phi-gamma.net>
4 years agotypeck: remove redundant diverges check
Mazdak Farrokhzad [Tue, 21 Jan 2020 17:47:58 +0000 (18:47 +0100)]
typeck: remove redundant diverges check

4 years agotypeck: remove redundant diverges code
Mazdak Farrokhzad [Tue, 21 Jan 2020 17:24:25 +0000 (18:24 +0100)]
typeck: remove redundant diverges code