]> git.lizzy.rs Git - rust.git/log
rust.git
4 years agoFix test paths
Georg Semmler [Sat, 19 Oct 2019 14:02:21 +0000 (16:02 +0200)]
Fix test paths

4 years agoAdd more coherence tests
Georg Semmler [Sat, 12 Oct 2019 18:53:11 +0000 (20:53 +0200)]
Add more coherence tests

4 years agoMore path name fixes
Georg Semmler [Tue, 24 Sep 2019 18:55:18 +0000 (20:55 +0200)]
More path name fixes

4 years agoRemove whitespace from testname
Georg Semmler [Mon, 23 Sep 2019 19:29:12 +0000 (21:29 +0200)]
Remove whitespace from testname

4 years agoFix some unused variable warnings
Georg Semmler [Sun, 22 Sep 2019 10:59:10 +0000 (12:59 +0200)]
Fix some unused variable warnings

4 years agoSplit line to fix tidy
Georg Semmler [Wed, 18 Sep 2019 20:36:04 +0000 (22:36 +0200)]
Split line to fix tidy

4 years agoAdd more tests
Georg Semmler [Wed, 18 Sep 2019 20:14:33 +0000 (22:14 +0200)]
Add more tests

4 years agoFix re-rebalance coherence implementation for fundamental types
Georg Semmler [Tue, 17 Sep 2019 12:40:36 +0000 (14:40 +0200)]
Fix re-rebalance coherence implementation for fundamental types

Fixes #64412

4 years agochange to check-pass
Niko Matsakis [Fri, 13 Sep 2019 18:57:06 +0000 (14:57 -0400)]
change to check-pass

4 years agoadd new tests for re_rebalance_coherence
Niko Matsakis [Thu, 12 Sep 2019 21:04:32 +0000 (17:04 -0400)]
add new tests for re_rebalance_coherence

4 years agoAuto merge of #64359 - varkor:opaque-ty-in-extern, r=estebank
bors [Thu, 12 Sep 2019 12:40:31 +0000 (12:40 +0000)]
Auto merge of #64359 - varkor:opaque-ty-in-extern, r=estebank

Forbid opaque types in `extern "C"` blocks

Fixes #64338.

4 years agoAuto merge of #64328 - Mark-Simulacrum:rustdoc-find-rustc, r=GuillaumeGomez
bors [Thu, 12 Sep 2019 08:29:55 +0000 (08:29 +0000)]
Auto merge of #64328 - Mark-Simulacrum:rustdoc-find-rustc, r=GuillaumeGomez

rustdoc: change doctests locating rustc binary

We previously used the "naive" approach of replacing the `current_exe()`'s file name with rustc, but now load from the sysroot by default (`$sysroot/bin/rustc`). The functionality of locating the sysroot overlaps/is the same as the functionality used by codegen backend loading; this ensures that any failure cases we've introduced are not exceeding those, and that improvements to finding the sysroot for loading codegen backends likewise enhance rustdoc.

The second commit adds an unstable `--test-builder` flag to rustdoc, and is largely separate (I can split into separate PR, but it's a simple and related change). This is largely intended for "advanced" users at this point (I'm not sure if we'll ever stabilize it); it permits use of a different rustc binary for rustdoc compilation of doctests than the rustdoc binary used when loading. Note, that this may not be what you want as the parsers and such differ (and rustdoc uses its own libsyntax, etc.). However, I've been told that running doctests in miri may be assisted by this change, so I've implemented it; I'll file a tracking issue for it if there's interest in it (and we land this PR).

4 years agoAuto merge of #64303 - nnethercote:avoid-more-Symbol-to-string-operations, r=petrochenkov
bors [Thu, 12 Sep 2019 04:15:27 +0000 (04:15 +0000)]
Auto merge of #64303 - nnethercote:avoid-more-Symbol-to-string-operations, r=petrochenkov

Avoid more `Symbol`-to-string operations

These commits avoid various `Symbol`-to-string conversions, by doing more operations directly on `Symbol`s. This requires adding a few more static `Symbol`s to the binary.

r? @petrochenkov

4 years agoAuto merge of #64334 - jyao1:i686-master, r=joshtriplett
bors [Wed, 11 Sep 2019 22:40:11 +0000 (22:40 +0000)]
Auto merge of #64334 - jyao1:i686-master, r=joshtriplett

Add i686-unknown-uefi target

This adds a new rustc target-configuration called 'i686-unknown_uefi'.
This is similar to existing x86_64-unknown_uefi target.

The i686-unknown-uefi target can be used to build Intel Architecture
32bit UEFI application. The ABI defined in UEFI environment (aka IA32)
is similar to cdecl.

We choose i686-unknown-uefi-gnu instead of i686-unknown-uefi to avoid
the intrinsics generated by LLVM. The detail of root-cause and solution
analysis is added as comment in the code.
For x86_64-unknown-uefi, we cannot use -gnu, because the ABI between
MSVC and GNU is totally different, and UEFI chooses ABI similar to MSVC.
For i686-unknown-uefi, the UEFI chooses cdecl ABI, which is same as
MSVC and GNU. According to LLVM code, the only differences between MSVC
and GNU are fmodf(f32), longjmp() and TLS, which have no impact to UEFI.
As such, using i686-unknown-uefi-gnu is the simplest way to pass the build.

Adding the undefined symbols, such as _aulldiv() to rust compiler-builtins
is out of scope. But it may be considered later.

The scope of this patch is limited to support target-configuration.

No standard library support is added in this patch. Such work can be
done in future enhancement.

Cc: Josh Triplett <josh.triplett@intel.com>
Reviewed-by: Josh Triplett <josh.triplett@intel.com>
4 years agoAuto merge of #64271 - Centril:non-exhaustive-peel-refs, r=estebank
bors [Wed, 11 Sep 2019 18:46:18 +0000 (18:46 +0000)]
Auto merge of #64271 - Centril:non-exhaustive-peel-refs, r=estebank

check_match: refactor + improve non-exhaustive diagnostics for default binding modes

Refactor `check_match` a bit with more code-reuse and improve the diagnostics for a non-exhaustive pattern match by peeling off any references from the scrutinee type so that the "defined here" label is added in more cases. For example:

```rust
error[E0004]: non-exhaustive patterns: `&mut &B` not covered
 --> foo.rs:4:11
  |
1 | enum E { A, B }
  | ---------------
  | |           |
  | |           not covered
  | `E` defined here
...
4 |     match x {
  |           ^ pattern `&mut &B` not covered
  |
  = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
```

Moreover, wrt. "defined here", we give irrefutable pattern matching (i.e. in `let`, `for`, and `fn` parameters) a more consistent treatment in line with `match`.

r? @estebank

4 years agoAuto merge of #64154 - alexcrichton:std-backtrace, r=sfackler
bors [Wed, 11 Sep 2019 14:46:08 +0000 (14:46 +0000)]
Auto merge of #64154 - alexcrichton:std-backtrace, r=sfackler

std: Add a `backtrace` module

This commit adds a `backtrace` module to the standard library, as
designed in [RFC 2504]. The `Backtrace` type is intentionally very
conservative, effectively only allowing capturing it and printing it.

Additionally this commit also adds a `backtrace` method to the `Error`
trait which defaults to returning `None`, as specified in [RFC 2504].
More information about the design here can be found in [RFC 2504] and in
the [tracking issue].

Implementation-wise this is all based on the `backtrace` crate and very
closely mirrors the `backtrace::Backtrace` type on crates.io. Otherwise
it's pretty standard in how it handles everything internally.

[RFC 2504]: https://github.com/rust-lang/rfcs/blob/master/text/2504-fix-error.md
[tracking issue]: https://github.com/rust-lang/rust/issues/53487

cc #53487

4 years agoAvoid two `Symbol::as_str()` calls.
Nicholas Nethercote [Thu, 5 Sep 2019 01:54:01 +0000 (11:54 +1000)]
Avoid two `Symbol::as_str()` calls.

4 years agoUse `Symbol` in `external_path()`.
Nicholas Nethercote [Thu, 5 Sep 2019 01:43:05 +0000 (11:43 +1000)]
Use `Symbol` in `external_path()`.

4 years agoUse `Symbol` in `weak_lang_items!`.
Nicholas Nethercote [Thu, 5 Sep 2019 01:35:39 +0000 (11:35 +1000)]
Use `Symbol` in `weak_lang_items!`.

4 years agoUse `ast::Name` in `report_ambiguous_associated_type()`.
Nicholas Nethercote [Thu, 5 Sep 2019 01:26:51 +0000 (11:26 +1000)]
Use `ast::Name` in `report_ambiguous_associated_type()`.

4 years agoUse `Symbol` in `Linker`.
Nicholas Nethercote [Thu, 5 Sep 2019 01:23:45 +0000 (11:23 +1000)]
Use `Symbol` in `Linker`.

4 years agoStore `InternedString`s in `AssertModuleSource::available_cgus`.
Nicholas Nethercote [Thu, 5 Sep 2019 00:36:30 +0000 (10:36 +1000)]
Store `InternedString`s in `AssertModuleSource::available_cgus`.

4 years agoAuto merge of #64369 - Centril:rollup-g875ozi, r=Centril
bors [Wed, 11 Sep 2019 00:39:40 +0000 (00:39 +0000)]
Auto merge of #64369 - Centril:rollup-g875ozi, r=Centril

Rollup of 6 pull requests

Successful merges:

 - #64060 (Improve hygiene of `alloc::format!`)
 - #64072 (Replace file_stem by file_name in rustdoc markdown)
 - #64129 (vxWorks: set DEFAULT_MIN_STACK_SIZE to 256K and use min_stack to pass initial stack size to rtpSpawn)
 - #64188 (rustc: Allow the cdylib crate type with wasm32-wasi)
 - #64326 (Fixed documentation within c_str::from_ptr)
 - #64349 (documentation for AtomicPtr CAS operations)

Failed merges:

r? @ghost

4 years agoRollup merge of #64349 - arnohaase:pr_documentation_atomicptr, r=cramertj
Mazdak Farrokhzad [Wed, 11 Sep 2019 00:38:10 +0000 (02:38 +0200)]
Rollup merge of #64349 - arnohaase:pr_documentation_atomicptr, r=cramertj

documentation for AtomicPtr CAS operations

The examples in the documentation for AtomicPtr CAS operations only show code that does *not* perform the CAS operation. I suggest to change them so that they actually do exchange the AtomicPtr's value.

4 years agoRollup merge of #64326 - hman523:master, r=joshtriplett
Mazdak Farrokhzad [Wed, 11 Sep 2019 00:38:09 +0000 (02:38 +0200)]
Rollup merge of #64326 - hman523:master, r=joshtriplett

Fixed documentation within c_str::from_ptr

Fixed the documentation issue mentioned in #63590

4 years agoRollup merge of #64188 - alexcrichton:wasi-cdylib, r=varkor
Mazdak Farrokhzad [Wed, 11 Sep 2019 00:38:07 +0000 (02:38 +0200)]
Rollup merge of #64188 - alexcrichton:wasi-cdylib, r=varkor

rustc: Allow the cdylib crate type with wasm32-wasi

The wasm32-wasi target respects configuration around `crt-static` in
general, but is defaulted to being static. This interacted badly with
code which validated the `cdylib` crate type for `wasm32-wasi`,
erroneously saying that the `cdylib` crate type wasn't supported on
`wasm32-wasi` by default. This commit sets the appropriate flag in
`wasm32_wasi`'s target specification to indicate that the `cdylib` crate
type is supported regardless of `crt-static`

Closes #64187

4 years agoRollup merge of #64129 - Wind-River:master_003, r=alexcrichton
Mazdak Farrokhzad [Wed, 11 Sep 2019 00:38:06 +0000 (02:38 +0200)]
Rollup merge of #64129 - Wind-River:master_003, r=alexcrichton

vxWorks: set DEFAULT_MIN_STACK_SIZE to 256K and use min_stack to pass initial stack size to rtpSpawn

vxWorks: set DEFAULT_MIN_STACK_SIZE to 256K and use min_stack to pass initial stack size to rtpSpawn

r? @alexcrichton
cc @n-salim

4 years agoRollup merge of #64072 - limira:patch-1, r=ollie27
Mazdak Farrokhzad [Wed, 11 Sep 2019 00:38:04 +0000 (02:38 +0200)]
Rollup merge of #64072 - limira:patch-1, r=ollie27

Replace file_stem by file_name in rustdoc markdown

Before this PR, a file name like `some.file.md` will be output to a file named `some.html` with is not correct because the expected output file must be `some.file.html`

4 years agoRollup merge of #64060 - petrochenkov:unstdhyg, r=tmandry
Mazdak Farrokhzad [Wed, 11 Sep 2019 00:38:03 +0000 (02:38 +0200)]
Rollup merge of #64060 - petrochenkov:unstdhyg, r=tmandry

Improve hygiene of `alloc::format!`

`format` now uses `format_args` though a `__export` module, as described in https://github.com/rust-lang/rust/issues/63687#issuecomment-526254208.

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

4 years agoRefactor "not FFI-safe" diagnostic
varkor [Tue, 10 Sep 2019 21:29:31 +0000 (22:29 +0100)]
Refactor "not FFI-safe" diagnostic

4 years agoAdd unstable --test-builder to rustdoc
Mark Rousskov [Tue, 10 Sep 2019 01:11:27 +0000 (21:11 -0400)]
Add unstable --test-builder to rustdoc

This allows overriding the rustc binary used to build tests; it should
not generally be necessary as we fallback to the sysroot.

4 years agoLocate rustc binary similarly to codegen backend loading
Mark Rousskov [Tue, 10 Sep 2019 01:01:41 +0000 (21:01 -0400)]
Locate rustc binary similarly to codegen backend loading

This ensures that the failure cases for finding the codegen backend and
for finding the rustc binary are essentially the same, and since we
almost always will load the codegen backend, this is essentially meaning
that the rustc change is not a regression.

4 years agoMerge pull request #19 from Wind-River/min_stack_size
Baoshan [Tue, 10 Sep 2019 20:39:12 +0000 (13:39 -0700)]
Merge pull request #19 from Wind-River/min_stack_size

remove Copyright notic

4 years agoSurround `PhantomData` in backticks
varkor [Tue, 10 Sep 2019 17:16:47 +0000 (18:16 +0100)]
Surround `PhantomData` in backticks

4 years agoForbid opaque types in extern blocks
varkor [Tue, 10 Sep 2019 17:16:35 +0000 (18:16 +0100)]
Forbid opaque types in extern blocks

4 years agoremove Copyright notic
Baoshan Pang [Tue, 10 Sep 2019 16:25:22 +0000 (09:25 -0700)]
remove Copyright notic

4 years agoAuto merge of #64354 - Centril:rollup-oaq0xoi, r=Centril
bors [Tue, 10 Sep 2019 16:19:48 +0000 (16:19 +0000)]
Auto merge of #64354 - Centril:rollup-oaq0xoi, r=Centril

Rollup of 8 pull requests

Successful merges:

 - #63786 (Make `abs`, `wrapping_abs`, `overflowing_abs` const functions)
 - #63989 (Add Yaah to clippy toolstain notification list)
 - #64256 (test/c-variadic: Fix patterns on powerpc64)
 - #64292 (lowering: extend temporary lifetimes around await)
 - #64311 (lldb: avoid mixing "Hit breakpoint" message with other output.)
 - #64330 (Clarify E0507 to note Fn/FnMut relationship to borrowing)
 - #64331 (Changed instant is earlier to instant is later)
 - #64344 (rustc_mir: buffer -Zdump-mir output instead of pestering the kernel constantly.)

Failed merges:

r? @ghost

4 years agoRollup merge of #64344 - eddyb:mir-opt-stop-shouting-at-the-kernel, r=oli-obk
Mazdak Farrokhzad [Tue, 10 Sep 2019 15:19:31 +0000 (17:19 +0200)]
Rollup merge of #64344 - eddyb:mir-opt-stop-shouting-at-the-kernel, r=oli-obk

rustc_mir: buffer -Zdump-mir output instead of pestering the kernel constantly.

This brings `mir-opt` tests from `197s` (over 3 minutes!) to `2.85s`, on my build server.
That's a nice speedup of about `69x` and so it definitely fixes #58485, for me.

It's such a beginner mistake I feel like maybe `clippy` should lint against it?
(cc @Manishearth @oli-obk)

4 years agoRollup merge of #64331 - hman523:fix-64322, r=varkor
Mazdak Farrokhzad [Tue, 10 Sep 2019 15:19:29 +0000 (17:19 +0200)]
Rollup merge of #64331 - hman523:fix-64322, r=varkor

Changed instant is earlier to instant is later

Fixed the documentation issue from #64322

4 years agoRollup merge of #64330 - Mark-Simulacrum:clarify-E0507, r=GuillaumeGomez
Mazdak Farrokhzad [Tue, 10 Sep 2019 15:19:28 +0000 (17:19 +0200)]
Rollup merge of #64330 - Mark-Simulacrum:clarify-E0507, r=GuillaumeGomez

Clarify E0507 to note Fn/FnMut relationship to borrowing

Fixes #37904.

4 years agoRollup merge of #64311 - eddyb:lldb-python3, r=michaelwoerister
Mazdak Farrokhzad [Tue, 10 Sep 2019 15:19:26 +0000 (17:19 +0200)]
Rollup merge of #64311 - eddyb:lldb-python3, r=michaelwoerister

lldb: avoid mixing "Hit breakpoint" message with other output.

This is to get `src/test/debuginfo/lexical-scopes-in-block-expression.rs` working.
It used to work like a week ago, and the main change that happened was I switched from Python 2 to Python 3 (I don't remember why, but I did get rid of the build dir entirely, and it fixed something else).

The error was:
```
error: line not found in debugger output: [...]$27 = 10
```

Relevant part of the output:
```
print val
(long) $26 = 15
print ten
(long) $27 = 10 Hit breakpoint 15.1: where = a`lexical_scopes_in_block_expression::main::hcdd5c3caa9166e73 + 1223 at lexical-scopes-in-block-expression.rs:504:4, address = 0x00005555555556e7, resolved, hit count = 1
Hit breakpoint 16.1: where = a`lexical_scopes_in_block_expression::main::hcdd5c3caa9166e73 + 631 at lexical-scopes-in-block-expression.rs:510:8, address = 0x0000555555555497, resolved, hit count = 1
```

There are most `print` commands and their outputs before, and more `Hit breakpoint` messages afterwards, so I assume what happens is the `Hit breakpoint` messages should be interleaved but somehow they ended up being buffered after all of the other output.

As a stopgap measure I'm adding a newline before each `Hit breakpoint` so they don't end up on the same line as the last `print` output (which breaks our pattern-matching).

r? @michaelwoerister

4 years agoRollup merge of #64292 - davidtwco:issue-63832-await-temporary-lifetimes, r=matthewjasper
Mazdak Farrokhzad [Tue, 10 Sep 2019 15:19:25 +0000 (17:19 +0200)]
Rollup merge of #64292 - davidtwco:issue-63832-await-temporary-lifetimes, r=matthewjasper

lowering: extend temporary lifetimes around await

Fixes #63832.

r? @matthewjasper
cc @nikomatsakis

4 years agoRollup merge of #64256 - smaeul:patch/powerpc64-tests, r=alexcrichton
Mazdak Farrokhzad [Tue, 10 Sep 2019 15:19:23 +0000 (17:19 +0200)]
Rollup merge of #64256 - smaeul:patch/powerpc64-tests, r=alexcrichton

test/c-variadic: Fix patterns on powerpc64

On architectures such as powerpc64 that use extend_integer_width_to in
their C ABI processing, integer parameters shorter than the native
register width will be annotated with the ArgAttribute::SExt or
ArgAttribute::ZExt attribute, and that attribute will be included in the
generated LLVM IR.

In this test, all relevant parameters are `i32`, which will get the
`signext` annotation on the relevant 64-bit architectures. Match both
the annotated and non-annotated case, but enforce that the annotation is
applied consistently.

4 years agoRollup merge of #63989 - yaahc:master, r=Manishearth
Mazdak Farrokhzad [Tue, 10 Sep 2019 15:19:22 +0000 (17:19 +0200)]
Rollup merge of #63989 - yaahc:master, r=Manishearth

Add Yaah to clippy toolstain notification list

4 years agoRollup merge of #63786 - tspiteri:const-abs, r=alexcrichton
Mazdak Farrokhzad [Tue, 10 Sep 2019 15:19:19 +0000 (17:19 +0200)]
Rollup merge of #63786 - tspiteri:const-abs, r=alexcrichton

Make `abs`, `wrapping_abs`, `overflowing_abs` const functions

This makes `abs`, `wrapping_abs` and `overflowing_abs` const functions like #58044 makes `wrapping_neg` and `overflowing_neg` const functions.

`abs` is made const by returning `(self ^ -1) - -1` = `!self + 1` = `-self` for negative numbers and `(self ^ 0) - 0` = `self` for non-negative numbers. The subexpression `self >> ($BITS - 1)` evaluates to `-1` for negative numbers and `0` otherwise. The subtraction overflows when `self` is `min_value()`, as we would be subtracting `max_value() - -1`; this is when `abs` should overflow.

`wrapping_abs` and `overflowing_abs` make use of `wrapping_sub` and `overflowing_sub` instead of the subtraction operator.

4 years agoAdd unexpected type to extern type bug message
varkor [Tue, 10 Sep 2019 14:11:05 +0000 (15:11 +0100)]
Add unexpected type to extern type bug message

4 years agoAuto merge of #60387 - Goirad:test-expansion, r=ollie27
bors [Tue, 10 Sep 2019 12:19:41 +0000 (12:19 +0000)]
Auto merge of #60387 - Goirad:test-expansion, r=ollie27

Allow cross-compiling doctests

This PR allows doctest to receive a --runtool argument, as well as possibly many --runtool-arg arguments, which are then used to run cross compiled doctests.
Also, functionality has been added to rustdoc to allow it to skip testing doctests on a per-target basis, in the same way that compiletest does it. For example, tagging the doctest with "ignore-sgx" disables testing on any targets that contain "sgx". A plain "ignore" still skips testing on all targets.

See [here](https://github.com/rust-lang/cargo/pull/6892) for the companion PR in the cargo project that extends functionality in Cargo so that it passes the appropriate parameters to rustdoc when cross compiling and testing doctests.

Part of [#6460](https://github.com/rust-lang/cargo/issues/6460)

4 years agodocumentation for AtomicPtr CAS operations
Arno Haase [Tue, 10 Sep 2019 12:18:16 +0000 (14:18 +0200)]
documentation for AtomicPtr CAS operations

4 years agorustc_mir: buffer -Zdump-mir output instead of pestering the kernel constantly.
Eduard-Mihai Burtescu [Tue, 10 Sep 2019 10:43:54 +0000 (13:43 +0300)]
rustc_mir: buffer -Zdump-mir output instead of pestering the kernel constantly.

4 years agolowering: extend temporary lifetimes around await
David Wood [Sun, 8 Sep 2019 20:22:51 +0000 (21:22 +0100)]
lowering: extend temporary lifetimes around await

This commit changes the HIR lowering around `await` so that temporary
lifetimes are extended. Previously, await was lowered as:

```rust
{
    let mut pinned = future;
    loop {
        match ::std::future::poll_with_tls_context(unsafe {
            <::std::pin::Pin>::new_unchecked(&mut pinned)
        }) {
            ::std::task::Poll::Ready(result) => break result,
            ::std::task::Poll::Pending => {}
        }
        yield ();
    }
}
```

With this commit, await is lowered as:

```rust
match future {
    mut pinned => loop {
        match ::std::future::poll_with_tls_context(unsafe {
            <::std::pin::Pin>::new_unchecked(&mut pinned)
        }) {
            ::std::task::Poll::Ready(result) => break result,
            ::std::task::Poll::Pending => {}
        }
        yield ();
    }
}
```

However, this change has the following side-effects:

- All temporaries in future will be considered to live across a
  yield for the purpose of auto-traits.
- Borrowed temporaries in future are likely to be considered to be live
  across the yield for the purpose of the generator transform.

Signed-off-by: David Wood <david@davidtw.co>
4 years agoAuto merge of #64329 - Mark-Simulacrum:rustdoc-log, r=GuillaumeGomez
bors [Tue, 10 Sep 2019 08:31:53 +0000 (08:31 +0000)]
Auto merge of #64329 - Mark-Simulacrum:rustdoc-log, r=GuillaumeGomez

Switch rustdoc logging to RUSTDOC_LOG

This better aligns with Cargo (CARGO_LOG) and rustc (RUSTC_LOG).

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

r? @GuillaumeGomez

4 years agoAdd i686-unknown-uefi target
Jiewen Yao [Thu, 29 Aug 2019 03:44:37 +0000 (11:44 +0800)]
Add i686-unknown-uefi target

This adds a new rustc target-configuration called 'i686-unknown_uefi'.
This is similar to existing x86_64-unknown_uefi target.

The i686-unknown-uefi target can be used to build Intel Architecture
32bit UEFI application. The ABI defined in UEFI environment (aka IA32)
is similar to cdecl.

We choose i686-unknown-uefi-gnu instead of i686-unknown-uefi to avoid
the intrinsics generated by LLVM. The detail of root-cause and solution
analysis is added as comment in the code.
For x86_64-unknown-uefi, we cannot use -gnu, because the ABI between
MSVC and GNU is totally different, and UEFI chooses ABI similar to MSVC.
For i686-unknown-uefi, the UEFI chooses cdecl ABI, which is same as
MSVC and GNU. According to LLVM code, the only differences between MSVC
and GNU are fmodf(f32), longjmp() and TLS, which have no impact to UEFI.
As such, using i686-unknown-uefi-gnu is the simplest way to pass the build.

Adding the undefined symbols, such as _aulldiv() to rust compiler-builtins
is out of scope. But it may be considered later.

The scope of this patch is limited to support target-configuration.

No standard library support is added in this patch. Such work can be
done in future enhancement.

Cc: Josh Triplett <josh.triplett@intel.com>
Reviewed-by: Josh Triplett <josh.triplett@intel.com>
4 years agoAuto merge of #64333 - Centril:rollup-llhhr82, r=Centril
bors [Tue, 10 Sep 2019 04:30:32 +0000 (04:30 +0000)]
Auto merge of #64333 - Centril:rollup-llhhr82, r=Centril

Rollup of 4 pull requests

Successful merges:

 - #64307 (Update clippy)
 - #64308 (Update miri submodule)
 - #64318 (update reference)
 - #64323 (Always show backtrace on Fuchsia)

Failed merges:

r? @ghost

4 years agoRollup merge of #64323 - cramertj:fuchsia-rust-backtrace-noop, r=alexcrichton
Mazdak Farrokhzad [Tue, 10 Sep 2019 04:29:50 +0000 (06:29 +0200)]
Rollup merge of #64323 - cramertj:fuchsia-rust-backtrace-noop, r=alexcrichton

Always show backtrace on Fuchsia

r? @alexcrichton

cc @jakeehrlich

4 years agoRollup merge of #64318 - RalfJung:reference, r=ehuss
Mazdak Farrokhzad [Tue, 10 Sep 2019 04:29:49 +0000 (06:29 +0200)]
Rollup merge of #64318 - RalfJung:reference, r=ehuss

update reference

r? @Centril

4 years agoRollup merge of #64308 - oli-obk:miri, r=oli-obk
Mazdak Farrokhzad [Tue, 10 Sep 2019 04:29:47 +0000 (06:29 +0200)]
Rollup merge of #64308 - oli-obk:miri, r=oli-obk

Update miri submodule

fixes #64244

4 years agoRollup merge of #64307 - lzutao:clippy-up, r=oli-obk
Mazdak Farrokhzad [Tue, 10 Sep 2019 04:29:46 +0000 (06:29 +0200)]
Rollup merge of #64307 - lzutao:clippy-up, r=oli-obk

Update clippy

Closes #64215

r? @Manishearth
cc @oli-obk

4 years agoChanged instant is earlier to instant is later
hman523 [Tue, 10 Sep 2019 02:19:01 +0000 (21:19 -0500)]
Changed instant is earlier to instant is later

4 years agotest/c-variadic: Fix patterns on powerpc64
Samuel Holland [Tue, 3 Sep 2019 03:09:15 +0000 (22:09 -0500)]
test/c-variadic: Fix patterns on powerpc64

On architectures such as powerpc64 that use extend_integer_width_to in
their C ABI processing, integer parameters shorter than the native
register width will be annotated with the ArgAttribute::SExt or
ArgAttribute::ZExt attribute, and that attribute will be included in the
generated LLVM IR.

In this test, all relevant parameters are `i32`, which will get the
`signext` annotation on the relevant 64-bit architectures. Match both
the annotated and non-annotated case, but enforce that the annotation is
applied consistently.

4 years agoClarify E0507 to note Fn/FnMut relationship to borrowing
Mark Rousskov [Tue, 10 Sep 2019 01:34:24 +0000 (21:34 -0400)]
Clarify E0507 to note Fn/FnMut relationship to borrowing

4 years agoSwitch rustdoc logging to RUSTDOC_LOG
Mark Rousskov [Tue, 10 Sep 2019 01:25:49 +0000 (21:25 -0400)]
Switch rustdoc logging to RUSTDOC_LOG

This better aligns with Cargo (CARGO_LOG) and rustc (RUSTC_LOG).

4 years agoUpdate added backticks around a function call
hman523 [Tue, 10 Sep 2019 01:09:17 +0000 (20:09 -0500)]
Update added backticks around a function call

Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
4 years agoAuto merge of #64321 - Centril:rollup-jsj5tpl, r=Centril
bors [Tue, 10 Sep 2019 00:34:30 +0000 (00:34 +0000)]
Auto merge of #64321 - Centril:rollup-jsj5tpl, r=Centril

Rollup of 5 pull requests

Successful merges:

 - #63806 (Upgrade rand to 0.7)
 - #64054 (Always emit unresolved import errors and hide unused import lint)
 - #64279 (Bump RLS and Rustfmt submodules to use rustc-ap-* v583)
 - #64317 (Update LLVM submodule)
 - #64320 (Update version of `rustc-std-workspace-*` crates)

Failed merges:

r? @ghost

4 years agoFixed documentation within c_str::from_ptr
hman523 [Mon, 9 Sep 2019 23:50:11 +0000 (18:50 -0500)]
Fixed documentation within c_str::from_ptr

4 years agoAlways show backtrace on Fuchsia
Taylor Cramer [Mon, 9 Sep 2019 20:40:11 +0000 (13:40 -0700)]
Always show backtrace on Fuchsia

4 years agoRollup merge of #64320 - alexcrichton:update-patch, r=RalfJung
Mazdak Farrokhzad [Mon, 9 Sep 2019 20:18:14 +0000 (22:18 +0200)]
Rollup merge of #64320 - alexcrichton:update-patch, r=RalfJung

Update version of `rustc-std-workspace-*` crates

This commit updates the version of the `rustc-std-workspace-*` crates
in-tree which are used in `[patch]`. This will guarantee that Cargo will
select these versions even if minor updates are published to crates.io
because otherwise a newer version on crates.io would be preferred which
misses the point of `[patch]`!

4 years agoRollup merge of #64317 - nikic:bump-llvm-3, r=alexcrichton
Mazdak Farrokhzad [Mon, 9 Sep 2019 20:18:12 +0000 (22:18 +0200)]
Rollup merge of #64317 - nikic:bump-llvm-3, r=alexcrichton

Update LLVM submodule

Updates the LLVM submodule to current LLVM 9 HEAD.

Fixes #63918.
Fixes #63791.

r? @alexcrichton

4 years agoRollup merge of #64279 - Xanewok:bump-rustc-ap, r=tmandry
Mazdak Farrokhzad [Mon, 9 Sep 2019 20:18:11 +0000 (22:18 +0200)]
Rollup merge of #64279 - Xanewok:bump-rustc-ap, r=tmandry

Bump RLS and Rustfmt submodules to use rustc-ap-* v583

Closes #64180
Closes #64179

r? @topecongiro

4 years agoRollup merge of #64054 - estebank:unused-import-is-to-eager, r=petrochenkov
Mazdak Farrokhzad [Mon, 9 Sep 2019 20:18:10 +0000 (22:18 +0200)]
Rollup merge of #64054 - estebank:unused-import-is-to-eager, r=petrochenkov

Always emit unresolved import errors and hide unused import lint

Fix https://github.com/rust-lang/rust/issues/63724.

r? @petrochenkov

4 years agoRollup merge of #63806 - mati865:rand, r=alexcrichton
Mazdak Farrokhzad [Mon, 9 Sep 2019 20:18:08 +0000 (22:18 +0200)]
Rollup merge of #63806 - mati865:rand, r=alexcrichton

Upgrade rand to 0.7

Also upgrades `getrandom` to avoid bug encountered by https://github.com/rust-lang/rust/pull/61393 which bumps libc to `0.2.62`.

4 years agoUpdate version of `rustc-std-workspace-*` crates
Alex Crichton [Mon, 9 Sep 2019 20:01:05 +0000 (13:01 -0700)]
Update version of `rustc-std-workspace-*` crates

This commit updates the version of the `rustc-std-workspace-*` crates
in-tree which are used in `[patch]`. This will guarantee that Cargo will
select these versions even if minor updates are published to crates.io
because otherwise a newer version on crates.io would be preferred which
misses the point of `[patch]`!

4 years agoupdate reference
Ralf Jung [Mon, 9 Sep 2019 18:48:57 +0000 (20:48 +0200)]
update reference

4 years agoUpdate LLVM submodule
Nikita Popov [Mon, 9 Sep 2019 18:32:03 +0000 (20:32 +0200)]
Update LLVM submodule

4 years agoAuto merge of #64313 - Centril:rollup-7w8b67g, r=Centril
bors [Mon, 9 Sep 2019 16:33:43 +0000 (16:33 +0000)]
Auto merge of #64313 - Centril:rollup-7w8b67g, r=Centril

Rollup of 5 pull requests

Successful merges:

 - #63468 (Resolve attributes in several places)
 - #64121 (Override `StepBy::{try_fold, try_rfold}`)
 - #64278 (check git in bootstrap.py)
 - #64306 (Fix typo in config.toml.example)
 - #64312 (Unify escape usage)

Failed merges:

r? @ghost

4 years agocargo update -p rustfmt-nightly
Igor Matuszewski [Sun, 8 Sep 2019 08:28:11 +0000 (10:28 +0200)]
cargo update -p rustfmt-nightly

4 years agoBump RLS and Rustfmt submodules
Igor Matuszewski [Sun, 8 Sep 2019 08:28:01 +0000 (10:28 +0200)]
Bump RLS and Rustfmt submodules

4 years agolldb: avoid mixing "Hit breakpoint" message with other output.
Eduard-Mihai Burtescu [Mon, 9 Sep 2019 14:37:38 +0000 (17:37 +0300)]
lldb: avoid mixing "Hit breakpoint" message with other output.

4 years agoRollup merge of #64312 - GuillaumeGomez:rustdoc-better-esc-handling, r=Mark-Simulacrum
Mazdak Farrokhzad [Mon, 9 Sep 2019 15:42:29 +0000 (17:42 +0200)]
Rollup merge of #64312 - GuillaumeGomez:rustdoc-better-esc-handling, r=Mark-Simulacrum

Unify escape usage

Fixes #63443.

I chose to keep the search text when pressing escape so when we focus on the search bar, we got the results again without needing to load them again. I also unified a bit a few things (maybe I should have done it in another commit, sorry...).

r? @Mark-Simulacrum

4 years agoRollup merge of #64306 - lukas-code:patch-1, r=jonas-schievink
Mazdak Farrokhzad [Mon, 9 Sep 2019 15:42:27 +0000 (17:42 +0200)]
Rollup merge of #64306 - lukas-code:patch-1, r=jonas-schievink

Fix typo in config.toml.example

4 years agoRollup merge of #64278 - guanqun:check-git, r=Mark-Simulacrum
Mazdak Farrokhzad [Mon, 9 Sep 2019 15:42:26 +0000 (17:42 +0200)]
Rollup merge of #64278 - guanqun:check-git, r=Mark-Simulacrum

check git in bootstrap.py

4 years agoRollup merge of #64121 - timvermeulen:iter_step_by_internal, r=scottmcm
Mazdak Farrokhzad [Mon, 9 Sep 2019 15:42:24 +0000 (17:42 +0200)]
Rollup merge of #64121 - timvermeulen:iter_step_by_internal, r=scottmcm

Override `StepBy::{try_fold, try_rfold}`

Previous PR: https://github.com/rust-lang/rust/pull/51435

The previous PR was closed in favor of https://github.com/rust-lang/rust/pull/51601, which was later reverted. I don't think these implementations will make it harder to specialize `StepBy<Range<_>>` later, so we should be able to land this without any consequences.

This should fix https://github.com/rust-lang/rust/issues/57517 – in my benchmarks `iter` and `iter.step_by(1)` now perform equally well, provided internal iteration is used.

4 years agoRollup merge of #63468 - c410-f3r:attrs, r=petrochenkov
Mazdak Farrokhzad [Mon, 9 Sep 2019 15:42:23 +0000 (17:42 +0200)]
Rollup merge of #63468 - c410-f3r:attrs, r=petrochenkov

Resolve attributes in several places

Resolve attributes for Arm, Field, FieldPat, GenericParam, Param, StructField and Variant.

This PR is based on @petrochenkov work located at https://github.com/petrochenkov/rust/commit/83fdb8d598c1a871d40b21faed64ee698b74f814.

4 years agostd: Add a `backtrace` module
Alex Crichton [Wed, 4 Sep 2019 20:00:14 +0000 (13:00 -0700)]
std: Add a `backtrace` module

This commit adds a `backtrace` module to the standard library, as
designed in [RFC 2504]. The `Backtrace` type is intentionally very
conservative, effectively only allowing capturing it and printing it.

Additionally this commit also adds a `backtrace` method to the `Error`
trait which defaults to returning `None`, as specified in [RFC 2504].
More information about the design here can be found in [RFC 2504] and in
the [tracking issue].

Implementation-wise this is all based on the `backtrace` crate and very
closely mirrors the `backtrace::Backtrace` type on crates.io. Otherwise
it's pretty standard in how it handles everything internally.

[RFC 2504]: https://github.com/rust-lang/rfcs/blob/master/text/2504-fix-error.md
[tracking issue]: https://github.com/rust-lang/rust/issues/53487

cc #53487

4 years agopacify tidy.
Mazdak Farrokhzad [Mon, 9 Sep 2019 15:05:41 +0000 (17:05 +0200)]
pacify tidy.

4 years agoUnify escape usage
Guillaume Gomez [Mon, 9 Sep 2019 15:04:28 +0000 (17:04 +0200)]
Unify escape usage

4 years agocheck_match: use pluralisee!
Mazdak Farrokhzad [Mon, 9 Sep 2019 14:52:58 +0000 (16:52 +0200)]
check_match: use pluralisee!

4 years agocheck_match: unify check_irrefutable & check_exhaustive more.
Mazdak Farrokhzad [Mon, 9 Sep 2019 14:44:06 +0000 (16:44 +0200)]
check_match: unify check_irrefutable & check_exhaustive more.

4 years agojoined_uncovered_patterns: use slice pats & eta-reduce.
Mazdak Farrokhzad [Mon, 9 Sep 2019 00:05:54 +0000 (02:05 +0200)]
joined_uncovered_patterns: use slice pats & eta-reduce.

4 years agocheck_match: extract joined_uncovered_patterns.
Mazdak Farrokhzad [Sun, 8 Sep 2019 23:59:22 +0000 (01:59 +0200)]
check_match: extract joined_uncovered_patterns.

4 years agotypeck: use .peel_refs() more.
Mazdak Farrokhzad [Sun, 8 Sep 2019 23:22:03 +0000 (01:22 +0200)]
typeck: use .peel_refs() more.

4 years agocheck_match: refactor + improve non-exhaustive diag for default binding modes.
Mazdak Farrokhzad [Sat, 7 Sep 2019 22:55:38 +0000 (00:55 +0200)]
check_match: refactor + improve non-exhaustive diag for default binding modes.

4 years agocheck git in bootstrap.py when trying to update submodule
Guanqun Lu [Wed, 4 Sep 2019 15:49:30 +0000 (23:49 +0800)]
check git in bootstrap.py when trying to update submodule

4 years agoUpdate miri submodule
Oliver Scherer [Mon, 9 Sep 2019 11:01:46 +0000 (13:01 +0200)]
Update miri submodule

4 years agoUpdate clippy
Lzu Tao [Mon, 9 Sep 2019 12:50:29 +0000 (12:50 +0000)]
Update clippy

4 years agoAuto merge of #63118 - Centril:stabilize-bind-by-move, r=matthewjasper
bors [Mon, 9 Sep 2019 12:46:59 +0000 (12:46 +0000)]
Auto merge of #63118 - Centril:stabilize-bind-by-move, r=matthewjasper

Stabilize `bind_by_move_pattern_guards` in Rust 1.39.0

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

After stabilizing `#![feature(bind_by_move_pattern_guards)]`, you can now use bind-by-move bindings in patterns and take references to those bindings in `if` guards of `match` expressions. For example, the following now becomes legal:

```rust
fn main() {
    let array: Box<[u8; 4]> = Box::new([1, 2, 3, 4]);

    match array {
        nums
//      ---- `nums` is bound by move.
            if nums.iter().sum::<u8>() == 10
//                 ^------ `.iter()` implicitly takes a reference to `nums`.
        => {
            drop(nums);
//          --------- Legal as `nums` was bound by move and so we have ownership.
        }
        _ => unreachable!(),
    }
}
```

r? @matthewjasper

4 years agoResolve attributes in several places
Caio [Mon, 9 Sep 2019 12:26:25 +0000 (09:26 -0300)]
Resolve attributes in several places

Arm, Field, FieldPat, GenericParam, Param, StructField and Variant

4 years agoFix typo in config.toml.example
Lukas [Mon, 9 Sep 2019 12:18:07 +0000 (12:18 +0000)]
Fix typo in config.toml.example

4 years agoAuto merge of #64237 - estebank:tweak-method-not-found, r=Centril
bors [Mon, 9 Sep 2019 08:39:59 +0000 (08:39 +0000)]
Auto merge of #64237 - estebank:tweak-method-not-found, r=Centril

Give method not found a primary span label

4 years agoAuto merge of #64195 - mark-i-m:update-rustc-guide-1, r=ehuss
bors [Mon, 9 Sep 2019 04:44:18 +0000 (04:44 +0000)]
Auto merge of #64195 - mark-i-m:update-rustc-guide-1, r=ehuss

Update rustc-guide

r? @ehuss

4 years agoGive method not found a primary span label
Esteban Küber [Fri, 6 Sep 2019 19:00:07 +0000 (12:00 -0700)]
Give method not found a primary span label