Commit Graph

102119 Commits

Author SHA1 Message Date
Tomasz Miąsko
0501d8ab0d Use check-pass in ui tests where appropriate 2019-11-04 16:03:46 +01:00
Tomasz Miąsko
045fdd9fa9 Use build-pass in ui tests where appropriate 2019-11-04 16:03:46 +01:00
Ralf Jung
90b8d34c9f bump smallvec to 1.0 2019-11-04 15:59:09 +01:00
Vadim Petrochenkov
d22a65995a Do not require extra LLVM backends for x.py test to pass 2019-11-04 16:54:34 +03:00
Tomasz Miąsko
a03474bc54 Use run-pass for ui tests where appropriate 2019-11-04 13:57:42 +01:00
Tomasz Miąsko
a99fba5bc5 Remove no longer useful ui test 2019-11-04 13:57:42 +01:00
Ralf Jung
21d284b6f0 also test different integers 2019-11-04 13:32:38 +01:00
Ralf Jung
3c944feb65 test offset_from with two integers 2019-11-04 13:32:38 +01:00
Ralf Jung
047e702c66 Miri: ptr_offset_from: support offset_from with twice the same non-null integer 2019-11-04 13:32:38 +01:00
Ralf Jung
da0c7c664b Miri: offset_from: do int-to-ptr casts when needed 2019-11-04 13:32:38 +01:00
Guillaume Gomez
1c78af7de2 clean highlightSourceLines code 2019-11-04 13:28:50 +01:00
bors
2477e2493e Auto merge of #66078 - petrochenkov:gateout, r=Centril
expand: Feature gate out-of-line modules in proc macro input

Extracted from https://github.com/rust-lang/rust/pull/64273.

We are currently gating attributes applied directly to `mod` items because there are unresolved questions about out-of-line modules and their behavior is very likely to change.

However, you can sneak an out-of-line module into an attribute macro input using modules nested into other items like
```rust
#[my_attr]
fn m() {
    #[path = "zzz.rs"]
    mod n; // what tokens does the `my_attr` macro see?
}
```
This PR prevents that and emits a feature gate error for this case as well.

r? @Centril
It would be great to land this before beta.
2019-11-04 12:16:00 +00:00
Vadim Petrochenkov
e7cedc9972 expand: Feature gate out-of-line modules in proc macro input 2019-11-04 14:56:07 +03:00
Ralf Jung
b4dde36344 let caller of check_ptr_access_align control the error message 2019-11-04 12:28:13 +01:00
Guillaume Gomez
8784b074e7 Change sub-setting CSS class to sub-settings 2019-11-04 11:39:00 +01:00
Ralf Jung
151e9890f4 also explain how to resolve MethodCall 2019-11-04 10:16:16 +01:00
Ralf Jung
bb37d00787 more robust method checking through DefId and diagnostic_item 2019-11-04 10:11:58 +01:00
Ralf Jung
224378cc6a more correct error msg 2019-11-04 10:10:49 +01:00
Ralf Jung
2cf7c29675 avoid using nightly features 2019-11-04 10:08:58 +01:00
bors
ab6e47851b Auto merge of #65835 - Mark-Simulacrum:lockless-lintbuffer, r=nikomatsakis
Remove LintBuffer from Session

This moves the `LintBuffer` from `Session` into the `Resolver`, where it is used until lowering is done and then consumed by early lint passes. This also happily removes the failure mode of buffering lints too late where it would have previously lead to ICEs; it is statically no longer possible to do so.

I suspect that with a bit more work a similar move could be done for the lint buffer inside `ParseSess`, but this PR doesn't touch it (in part to keep itself small).

The last commit is the "interesting" commit -- the ones before it don't work (though they compile) as they sort of prepare the various crates for the lint buffer to be passed in rather than accessed through Session.
2019-11-04 09:00:39 +00:00
Ralf Jung
65153710e1 QPath docs: mention how to resolve them 2019-11-04 09:50:59 +01:00
bors
cba9368537 Auto merge of #64878 - XAMPPRocky:relnotes-1.39.0, r=XAMPPRocky
Updated RELEASES.md for 1.39.0

### [Rendered](https://github.com/XAMPPRocky/rust/blob/relnotes-1.39.0/RELEASES.md)

r? @Mark-Simulacrum
cc @rust-lang/release
2019-11-04 05:42:40 +00:00
Igor Aleksanov
31735b02c9 librustc_lexer: Make nth_char method private 2019-11-04 06:27:25 +03:00
Igor Aleksanov
e8b8d2a725 librustc_lexer: Reorder imports in lib.rs 2019-11-04 06:27:25 +03:00
Igor Aleksanov
ecd26739d4 librustc_lexer: Simplify "lifetime_or_char" method 2019-11-04 06:27:18 +03:00
Andy Russell
d06a4ded13
use silent emitter for rustdoc highlighting pass 2019-11-03 22:19:34 -05:00
Mark Rousskov
c68df7c503 Delete lint buffer from Session 2019-11-03 21:52:42 -05:00
Mark Rousskov
c0fdddcb60 Move crate type checking later
This allows us to directly pass in a lint buffer
2019-11-03 21:52:42 -05:00
Mark Rousskov
ea1ff8c07c Utilize Resolver lint buffer during HIR lowering 2019-11-03 21:52:42 -05:00
Mark Rousskov
bb0c930f82 Migrate resolver over to internal lint buffer 2019-11-03 21:52:42 -05:00
Mark Rousskov
1bd6b48914 Only permit taking buffered lints inside lint internals 2019-11-03 21:51:06 -05:00
Mark Rousskov
f530156ef5 Remove unused get_any method 2019-11-03 21:51:05 -05:00
bors
f49f388713 Auto merge of #65838 - estebank:resilient-recovery, r=Centril
Reduce amount of errors given unclosed delimiter

When in a file with a non-terminated item, catch the error and consume
the block instead of trying to recover it on a more granular way in order to
reduce the amount of unrelated errors that would be fixed after adding
the missing closing brace. Also point out the possible location of the
missing closing brace.

Fix #63690.
2019-11-04 02:30:45 +00:00
bors
0d5264a03c Auto merge of #65780 - GuillaumeGomez:move-help-popup-generation-code, r=Mark-Simulacrum
Move help popup generation code

The first commit is just a small cleanup.

The idea behind this PR is to reduce a bit more the generated HTML files by moving the duplicated code into one place instead.

r? @kinnison
2019-11-03 21:55:48 +00:00
Mark Rousskov
417c09ab27 Do not needlessly write-lock 2019-11-03 16:52:27 -05:00
Dylan MacKenzie
420457e5ca Don't extend lifetime of temp in Repeat expressions 2019-11-03 12:24:52 -08:00
Dylan MacKenzie
d6431f69ad Test that borrows of projections are promoted everywhere
Previously, this worked in `fn`s but not `const`s or `static`s.
2019-11-03 12:24:35 -08:00
Dylan MacKenzie
fab0caf172 Mark entire local as promoted even if only part is used 2019-11-03 12:24:34 -08:00
bors
b520af6fd5 Auto merge of #65646 - Amanieu:foreign-exceptions, r=nikomatsakis
Allow foreign exceptions to unwind through Rust code and Rust panics to unwind through FFI

This PR fixes interactions between Rust panics and foreign (mainly C++) exceptions.

C++ exceptions (and other FFI exceptions) can now safely unwind through Rust code:
- The FFI function causing the unwind must be marked with `#[unwind(allowed)]`. If this is not the case then LLVM may optimize landing pads away with the assumption that they are unreachable.
- Drop code will be executed as the exception unwinds through the stack, as with a Rust panic.
- `catch_unwind` will *not* catch the exception, instead the exception will silently continue unwinding past it.

Rust panics can now safely unwind through C++ code:
- C++ destructors will be called as the stack unwinds.
- The Rust panic can only be caught with `catch (...)`, after which it can be either rethrown or discarded.
- C++ cannot name the type of the Rust exception object used for unwinding, which means that it can't be caught explicitly or have its contents inspected.

Tests have been added to ensure all of the above works correctly.

Some notes about non-C++ exceptions:
- `pthread_cancel` and `pthread_exit` use unwinding on glibc. This has the same behavior as a C++ exception: destructors are run but it cannot be caught by `catch_unwind`.
- `longjmp` on Windows is implemented using unwinding. Destructors are run on MSVC, but not on MinGW. In both cases the unwind cannot be caught by `catch_unwind`.
- As with C++ exceptions, you need to mark the relevant FFI functions with `#[unwind(allowed)]`, otherwise LLVM will optimize out the destructors since they seem unreachable.

I haven't updated any of the documentation, so officially unwinding through FFI is still UB. However this is a step towards making it well-defined.

Fixes #65441

cc @gnzlbg
r? @alexcrichton
2019-11-03 18:36:59 +00:00
Samuel Holland
1943079361 Configure LLVM module PIC level
As of LLVM 9, this is required for 32-bit PowerPC to properly generate
PLT references. Previously, only BigPIC was supported; now LLVM supports
both BigPIC and SmallPIC, and there is no default value provided.
2019-11-03 10:52:00 -06:00
mjptree
6f79b71a69
Correct deprecated is_global IPv6 documentation
This method does currently not return false for the `site_local` unicast address space. The documentation of the `is_unicast_global` method on lines 1352 - 1382 suggests that this is intentional as the site-local prefix must no longer be supported in new implementations, thus the documentation can safely be updated to reflect that information.
If not so,  either the `is_unicast_global` method should be updated to exclude the unicast site-local address space, or the `is_global` method itself.
2019-11-03 16:16:14 +00:00
bors
b43a682259 Auto merge of #65759 - tmiasko:ui, r=petrochenkov
Validate error patterns and error annotation in ui tests when present

Previously, when compilation succeeded, neither error patterns nor error
annotation would be validated. Additionally, when compilation failed,
only error patterns would be validated if both error patterns and error
annotation were present.

Now both error patterns and error annotation are validated when present,
regardless of compilation status. Furthermore, for test that should run,
the error patterns are matched against executable output, which is what
some of tests already expect to happen, and when #65506 is merged even
more ui tests will.

Fixes #56277
2019-11-03 15:14:09 +00:00
Amanieu d'Antras
f223e0d627 Fix macOS tests 2019-11-03 14:04:15 +00:00
Amanieu d'Antras
76660fde81 Make Emscripten unwinding use a valid type_info
This allows catch_panic to ignore C++ exceptions.
2019-11-03 14:04:15 +00:00
Amanieu d'Antras
ad61c88e72 Make SEH exceptions use a rust_panic type instead of unsigned __int64* 2019-11-03 14:03:21 +00:00
Amanieu d'Antras
83d6bf4929 Hack to make C++ exceptions test work on i686-pc-windows-gnu 2019-11-03 14:03:21 +00:00
Amanieu d'Antras
5f1a0afd22 Allow foreign exceptions to unwind through Rust code 2019-11-03 14:03:21 +00:00
Amanieu d'Antras
9a8bb3a26e Enable C++ exceptions on MSVC when building C++ tests 2019-11-03 14:03:20 +00:00
Amanieu d'Antras
246c606e75 Add -lstdc++ for run-make-fulldeps tests on MinGW 2019-11-03 14:03:20 +00:00
Eric Huss
9b9d651288 Attempt to clarify LTO and codegen-units. 2019-11-03 06:00:58 -08:00