Add run-pass case for issue #14308

Enum wildcard patterns in match behave wrong when applied to tuple
structs. They either ICE or cause an LLVM error.
Fix ICE regarding tuple struct matches using (..)

Fixes half of #14308.
Fix LLVM error with tuple struct match using (..)

Consider PatEnums constructed with A(..) to be candidates for tuple
struct patterns, not just ones constructed with A(a,b,c). If these
patterns shouldn't be valid tuple struct patterns (as they're equivalent
to _), this needs to be caught before we get to trans.

Fixes #14308.
Spelling/doc formatting fixes.
syntax: put the correct span on doc-comments inside a module.

The position of the .bump call (before extracting the span fields) was
causing a doc-comment to have the span of the next token, not itself.
Remove a slew of old deprecated functions
Fixed incorrect module path
extra::arc -> sync::arc
Update to LLVM head and mark various ptrs as nonnull.
auto merge of #14357 : huonw/rust/spelling, r=pnkfelix

The span on a inner doc-comment would point to the next token, e.g. the span for the `a` line points to the `b` line, and the span of `b` points to the `fn`.

```rust
//! a
//! b

fn bar() {}
```
updated hash value in reduced benchmark
rustc: middle: lint: use more doc comments
rustc: middle: ty: use doc comments for the tcx
libcore: Document math intrinsics.
rustc: add a lint for large enum variants

It can be easy to accidentally bloat the size of an enum by making one variant
larger than the others. When this happens, it usually goes unnoticed. This
commit adds a lint that can warn when the largest variant in an enum is more
than 3 times larger than the second-largest variant. This requires a little
bit of rejiggering, because size information is only available in trans, but
lint levels are only available in the lint context.

It is allow by default because it's pretty noisy, and isn't really *that*
undesirable.

Closes #10362
rustc: abstract lint level exporting from EnumSizeVariance
Fix lifetime error to print `'a` instead of `&'a`

This changes certain error messages about lifetimes so that they display
lifetimes without an `&`.

Fixes #10291.
auto merge of #14362 : zecozephyr/rust/docfixes, r=cmr

extra::arc -> alloc::arc
auto merge of #14372 : neeee/rust/intrinsic-docs, r=brson
syntax: Clean out obsolete syntax parsing

All of these features have been obsolete since February 2014, where most have
been obsolete since 2013. There shouldn't be any more need to keep around the
parser hacks after this length of time.
auto merge of #14360 : alexcrichton/rust/remove-deprecated, r=kballard

These have all been deprecated for awhile now, so it's likely time to start removing them.