Commit Graph

61848 Commits

Author SHA1 Message Date
Philipp Oppermann
b44805875e Add support for x86-interrupt calling convention
Tracking issue: https://github.com/rust-lang/rust/issues/40180

This calling convention can be used for definining interrupt handlers on
32-bit and 64-bit x86 targets. The compiler then uses `iret` instead of
`ret` for returning and ensures that all registers are restored to their
original values.

Usage:

```
extern "x86-interrupt" fn handler(stack_frame: &ExceptionStackFrame) {…}
```

for interrupts and exceptions without error code and

```
extern "x86-interrupt" fn page_fault_handler(stack_frame: &ExceptionStackFrame,
                                             error_code: u64) {…}
```

for exceptions that push an error code (e.g., page faults or general
protection faults). The programmer must ensure that the correct version
is used for each interrupt.

For more details see the [LLVM PR][1] and the corresponding [proposal][2].

[1]: https://reviews.llvm.org/D15567
[2]: http://lists.llvm.org/pipermail/cfe-dev/2015-September/045171.html
2017-03-02 19:01:15 +01:00
bors
8ae411e1b3 Auto merge of #40206 - GuillaumeGomez:rollup, r=GuillaumeGomez
Rollup of 9 pull requests

- Successful merges: #40081, #40144, #40168, #40169, #40170, #40173, #40175, #40191, #40194
- Failed merges:
2017-03-02 14:38:12 +00:00
Guillaume Gomez
ad0a3567f8 Rollup merge of #40194 - letmaik:patch-1, r=steveklabnik
Fix wrong word used in book page "const and static"
2017-03-02 11:29:43 +01:00
Guillaume Gomez
a7126e1132 Rollup merge of #40191 - topecongiro:x86-interrupt, r=steveklabnik
Add abi_x86_interrupt to the unstable book

This PR closes #40181.
2017-03-02 11:29:42 +01:00
Guillaume Gomez
f10adcc279 Rollup merge of #40175 - d-e-s-o:fix-inconsistency-in-guessing-game-readme, r=steveklabnik
doc: fix inconsistency in error output in guessing-game.md

The line '.expect("failed to read line");' is partly started with a
lower case 'f' and partly with an uppercase one, adding additional
spurious changes to otherwise clean diffs if each sample is
copy-and-pasted over the previous.
This change starts the string with an uppercase everywhere which is in
line with the style of the other strings.
2017-03-02 11:29:41 +01:00
Guillaume Gomez
4cf072d480 Rollup merge of #40173 - er-1:master, r=alexcrichton
Add a reference to the dl library to the Makefile of the test issue-2…

…4445.

It prevents the test to fail on ppc64el at least.

Part of #39015
2017-03-02 11:29:40 +01:00
Guillaume Gomez
e583b6a605 Rollup merge of #40170 - iKevinY:if-let-typo, r=frewsxcv
Fix link in `if let` docs

r? @steveklabnik
2017-03-02 11:29:39 +01:00
Guillaume Gomez
216a0ead44 Rollup merge of #40169 - MajorBreakfast:patch-8, r=steveklabnik
String docs: Add "the"

r? @steveklabnik
2017-03-02 11:29:38 +01:00
Guillaume Gomez
418a776651 Rollup merge of #40168 - topecongiro:compile-fail-test-abi-ptx, r=petrochenkov
Add compile fail test for abi_ptx

Issue #39059.
2017-03-02 11:29:37 +01:00
Guillaume Gomez
b1bd60bd7f Rollup merge of #40144 - MajorBreakfast:patch-7, r=frewsxcv
Unit-like structs doc: Improve code sample

r? @steveklabnik

BTW it seems that
```Rust
let p = Proton {};
```
compiles without an error. That's why I didn't add it to the example. It's about consistency anyway.
2017-03-02 11:29:36 +01:00
Guillaume Gomez
5d08775051 Rollup merge of #40081 - GuillaumeGomez:poison-docs, r=frewsxcv
Add missing url in sync structs

r? @frewsxcv
2017-03-02 11:29:35 +01:00
bors
2be750b243 Auto merge of #40188 - nikomatsakis:issue-40029, r=eddyb
inhibit enum layout optimizations under `#[repr(C)]` or `#[repr(u8)]`

Fixes #40029
2017-03-02 03:34:53 +00:00
topecongiro
0907b9d121 Add abi_x86_interrupt to the unstable book 2017-03-02 08:36:34 +09:00
Maik Riechert
898d010692 fix wrong word used (static vs const) 2017-03-01 23:06:40 +00:00
bors
d0954375e4 Auto merge of #39803 - brson:fpic, r=alexcrichton
Add a test that -fPIC is applied

r? @alexcrichton Can it really be this simple? I've tested it works, but still testing that it used to fail.
2017-03-01 22:48:17 +00:00
Niko Matsakis
2b07d0d853 inhibit enum layout optimizations under #[repr(C)] or #[repr(u8)]
Fixes #40029
2017-03-01 15:44:27 -05:00
Alex Crichton
55dab70f7a Don't run test on darwin 2017-03-01 08:08:53 -08:00
deso
471e65571b
doc: fix inconsistency in error output in guessing-game.md
The line '.expect("failed to read line");' is partly started with a
lower case 'f' and partly with an uppercase one, adding additional
spurious changes to otherwise clean diffs if each sample is
copy-and-pasted over the previous.
This change starts the string with an uppercase everywhere which is in
line with the style of the other strings.
2017-03-01 05:52:41 -08:00
er-1
05aadd2933 Add a reference to the dl library to the Makefile of the test issue-24445.
It prevents the test to fail on ppc64el at least.

Part of #39015
2017-03-01 12:17:27 +01:00
bors
691eba1358 Auto merge of #34198 - eddyb:you're-a-bad-transmute-and-you-should-feel-bad, r=nikomatsakis
Make transmuting from fn item types to pointer-sized types a hard error.

Closes #19925 by removing the future compatibility lint and the associated workarounds.
This is a `[breaking-change]` if you `transmute` from a function item without casting first.
For more information on how to fix your code, see https://github.com/rust-lang/rust/issues/19925.
2017-03-01 10:03:44 +00:00
Josef Brandl
8f1a0afee1 Unit-like structs doc: Add compile fail tag 2017-03-01 10:03:07 +01:00
Kevin Yap
9d99e12675 Fix link in if let docs 2017-03-01 01:01:37 -08:00
Josef Brandl
74b6221209 String docs: Add "the" 2017-03-01 09:56:52 +01:00
bors
b671c32ddc Auto merge of #40167 - frewsxcv:rollup, r=frewsxcv
Rollup of 6 pull requests

- Successful merges: #39419, #39936, #39944, #39960, #40028, #40128
- Failed merges:
2017-03-01 07:57:09 +00:00
bors
7ce1fbe1f7 Auto merge of #39419 - jseyfried:simplify_tokentree, r=nrc
Simplify `TokenTree` and fix `macro_rules!` bugs

This PR
 - fixes #39390, fixes #39403, and fixes #39404 (each is a [breaking-change], see issues for examples),
 - fixes #39889,
 - simplifies and optimizes macro invocation parsing,
 - cleans up `ext::tt::transcribe`,
 - removes `tokenstream::TokenTree::Sequence` and `Token::MatchNt`,
   - instead, adds a new type `ext::tt::quoted::TokenTree` for use by `macro_rules!` (`ext::tt`)
 - removes `parser.quote_depth` and `parser.parsing_token_tree`, and
 - removes `quote_matcher!`.
   - Instead, use `quote_tokens!` and `ext::tt::quoted::parse` the result with `expect_matchers=true`.
   - I found no outside uses of `quote_matcher!` when searching Rust code on Github.

r? @nrc
2017-03-01 05:58:09 +00:00
topecongiro
9141b7be70 Add compile fail test for abi_ptx 2017-03-01 13:12:07 +09:00
Corey Farwell
0b5bf67449 Rollup merge of #40128 - cengizIO:master, r=nikomatsakis
Move two large error_reporting fn's to a separate file

Hello!

I tried to make `librustc/infer/error_reporting,rs` more readable by modularizing it and moving its two largest functions to a separate file.

If you have any suggestions, please send it right away! 🚀

Thanks goes to @nikomatsakis for supporting.
2017-02-28 22:55:31 -05:00
Corey Farwell
0a008b949e Rollup merge of #40028 - withoutboats:string_from_iter, r=alexcrichton
impl FromIterator<&char> for String
2017-02-28 22:55:30 -05:00
Corey Farwell
06a0233ab3 Rollup merge of #39960 - lukaramu:issue-39925, r=alexcrichton
added Error and Display impl for std::ffi::FromBytesWithNulError

Fixes #39925.

This is my first PR, so I wasn't quite sure about the stability annotation.
2017-02-28 22:55:29 -05:00
Corey Farwell
fda3f98746 Rollup merge of #39944 - GuillaumeGomez:associated-consts, r=frewsxcv
Improve associated constant rendering in rustdoc

Before:

<img width="1440" alt="screen shot 2017-02-19 at 00 30 51" src="https://cloud.githubusercontent.com/assets/3050060/23097697/caeed80e-f63a-11e6-98c2-5d27e4efd76d.png">

After:

<img width="1440" alt="screen shot 2017-02-19 at 00 30 39" src="https://cloud.githubusercontent.com/assets/3050060/23097698/cfb4874e-f63a-11e6-80cf-ffbf5c5c6162.png">

cc @SergioBenitez

r? @rust-lang/docs
2017-02-28 22:55:28 -05:00
Corey Farwell
43df65fb3f Rollup merge of #39936 - djzin:inclusive_rangeargument, r=alexcrichton
impl RangeArgument for RangeInclusive and add appropriate tests

Now that `RangeArgument` returns a `Bound`, the impl for `RangeInclusive` is natural to implement and all that's required are tests around it.
2017-02-28 22:55:27 -05:00
Corey Farwell
4ba49ab39f Rollup merge of #39419 - jseyfried:simplify_tokentree, r=nrc
Simplify `TokenTree` and fix `macro_rules!` bugs

This PR
 - fixes #39390, fixes #39403, and fixes #39404 (each is a [breaking-change], see issues for examples),
 - fixes #39889,
 - simplifies and optimizes macro invocation parsing,
 - cleans up `ext::tt::transcribe`,
 - removes `tokenstream::TokenTree::Sequence` and `Token::MatchNt`,
   - instead, adds a new type `ext::tt::quoted::TokenTree` for use by `macro_rules!` (`ext::tt`)
 - removes `parser.quote_depth` and `parser.parsing_token_tree`, and
 - removes `quote_matcher!`.
   - Instead, use `quote_tokens!` and `ext::tt::quoted::parse` the result with `expect_matchers=true`.
   - I found no outside uses of `quote_matcher!` when searching Rust code on Github.

r? @nrc
2017-02-28 22:55:26 -05:00
bors
2f52386f10 Auto merge of #40164 - steveklabnik:rollup, r=steveklabnik
Rollup of 5 pull requests

- Successful merges: #40130, #40142, #40150, #40151, #40153
- Failed merges:
2017-03-01 00:58:13 +00:00
Steve Klabnik
4fd2aeddd4 Rollup merge of #40153 - steveklabnik:alphabetize-unstable-book, r=frewsxcv
sort unstable book alphabetically

I made these the same order as they were in the compiler, but for no good reason. Much easier to find out what you need when they're sorted alphabetically

r? @frewsxcv
2017-02-28 15:38:43 -08:00
Steve Klabnik
2a14d4bb86 Rollup merge of #40151 - steveklabnik:update-mdbook, r=frewsxcv
update mdbook version

This contains two important bugfixes
2017-02-28 15:38:42 -08:00
Steve Klabnik
40069bb9d1 Rollup merge of #40150 - topecongiro:compile-fail-test-cfg-target-has-atomic, r=alexcrichton
Add compile test for cfg_target_has_atomic

Issue #39059.
I am concerned about whether the test is excessive.
2017-02-28 15:38:41 -08:00
Steve Klabnik
9b55f531ca Rollup merge of #40142 - MajorBreakfast:patch-4, r=steveklabnik
Structs doc: Change "pointers" to "references"

Let's call them "references" instead of "pointers". That's how they're called in chapter 4.9 "References and Borrowing".

r? @steveklabnik
2017-02-28 15:38:40 -08:00
Steve Klabnik
aff269b5dc Rollup merge of #40130 - alexcrichton:fix-musl-again, r=nikomatsakis
travis: Fix typos in linux-tested-targets

These flags were supposed to be relevant for musl, not for gnu

cc #39979
2017-02-28 15:38:39 -08:00
Jeffrey Seyfried
839398a0b4 Add regression test. 2017-02-28 22:15:13 +00:00
Jeffrey Seyfried
61a9a14d29 Add warning cycle. 2017-02-28 22:15:12 +00:00
Jeffrey Seyfried
7f822c800d Refactor out parser.expect_delimited_token_tree(). 2017-02-28 22:15:11 +00:00
Jeffrey Seyfried
752413005e Merge repeat_idx and repeat_len. 2017-02-28 22:15:10 +00:00
Jeffrey Seyfried
0cc7053efa Remove Token::MatchNt. 2017-02-28 22:15:09 +00:00
Jeffrey Seyfried
d8b34e9a74 Add syntax::ext::tt::quoted::{TokenTree, ..} and remove tokenstream::TokenTree::Sequence. 2017-02-28 22:14:29 +00:00
Jeffrey Seyfried
2471888033 Avoid Token::{OpenDelim, CloseDelim}. 2017-02-28 22:13:39 +00:00
Jeffrey Seyfried
8c4960bfde Remove ext::tt::transcribe::tt_next_token. 2017-02-28 22:13:38 +00:00
Jeffrey Seyfried
abdc68973e Clean up ext::tt::transcribe::TtFrame, rename to Frame. 2017-02-28 22:13:37 +00:00
Jeffrey Seyfried
d09e512158 Remove a loop in ext::tt::transcribe. 2017-02-28 22:13:34 +00:00
Eduard Burtescu
7650afc1ce Make transmuting from fn item types to pointer-sized types a hard error. 2017-02-28 23:47:55 +02:00
Steve Klabnik
3a0437d448 sort unstable book alphabetically
I made these the same order as they were in the compiler, but for no good reason. Much easier to find out what you need when they're sorted alphabetically
2017-02-28 14:06:05 -05:00