Commit Graph

59287 Commits

Author SHA1 Message Date
Michael Woerister
8ecdc4ee3b Make symbol-visibility test case work on all platforms. 2016-12-05 11:05:25 -05:00
Michael Woerister
3548c8f560 Mention cdylibs in LTO error message. 2016-12-05 11:05:25 -05:00
Michael Woerister
93da4f81bf Export the plugin registrar from proc-macro crates (and not much else) 2016-12-05 11:05:25 -05:00
Michael Woerister
ea9f61353a Add test case for symbol visibility in dylibs. 2016-12-05 11:05:25 -05:00
Michael Woerister
bfd4910fa2 Linking: Include export lists in debug output. 2016-12-05 11:05:25 -05:00
Michael Woerister
e48160f6e4 Generate a version script for linkers on Linux. 2016-12-05 11:05:25 -05:00
Michael Woerister
133aeacf2f Refactor symbol export list generation. 2016-12-05 11:05:25 -05:00
Michael Woerister
5fd7c2bfef trans: Rename reachable to exported_symbols where appropriate. 2016-12-05 11:05:25 -05:00
Michael Woerister
d1a6d47f94 Make LLVM symbol visibility FFI types more stable. 2016-12-05 11:05:25 -05:00
bors
d346dbc938 Auto merge of #38107 - keeperofdakeys:proc-macro-test, r=alexcrichton
Allow --test to be used on proc-macro crates

Fixes #37480

This patch allows `--test` to work for proc-macro crates, removing the previous error.
2016-12-05 14:27:06 +00:00
bors
692d7cfb0c Auto merge of #38100 - nox:llvm, r=alexcrichton
Update llvm fork to 3ec14daffb4b8c0604df50b7fb0ab552f456e381
2016-12-05 10:04:25 +00:00
bors
b4f4b65f99 Auto merge of #38098 - luser:windows-commandext, r=alexcrichton
Add std::os::windows::process::CommandExt. Fixes #37827

This adds a CommandExt trait for Windows along with an implementation of it
for std::process::Command with methods to set the process creation flags that
are passed to CreateProcess.
2016-12-05 06:53:56 +00:00
Guillaume Gomez
d9b5ae9924 Add missing examples for panicking objects 2016-12-04 22:20:42 -08:00
bors
6bc551a261 Auto merge of #38093 - mikhail-m1:stack-overflow, r=arielb1
fix stack overflow by enum and cont issue #36163

some paths were skipped while checking for recursion.

I fixed bug reproduces on win64 cargo test. In previous PR #36458 time complexity was exponential in case of linked const values. Now it's linear.

r? @alexcrichton
2016-12-05 02:48:03 +00:00
bors
ebeee0e27e Auto merge of #38092 - pnkfelix:mir-stats, r=nikomatsakis
Adds `-Z mir-stats`, which is similar to `-Z hir-stats`.

Adds `-Z mir-stats`, which is similar to `-Z hir-stats`.

Some notes:

* This code attempts to present the breakdown of each variant for
  every enum in the MIR. This is meant to guide decisions about how to
  revise representations e.g. when to box payloads for rare variants
  to shrink the size of the enum overall.

* I left out the "Total:" line that hir-stats presents, because this
  implementation uses the MIR Visitor infrastructure, and the memory
  usage of structures directly embedded in other structures (e.g. the
  `func: Operand` in a `TerminatorKind:Call`) is not distinguished
  from similar structures allocated in a `Vec` (e.g. the `args:
  Vec<Operand>` in a `TerminatorKind::Call`). This means that a naive
  summation of all the accumulated sizes is misleading, because it
  will double-count the contribution of the `Operand` of the `func` as
  well as the size of the whole `TerminatorKind`.

  * I did consider abandoning the MIR Visitor and instead hand-coding
    a traversal that distinguished embedded storage from indirect
    storage. But such code would be fragile; better to just require
    people to take care when interpreting the presented results.

* This traverses the `mir.promoted` rvalues to capture stats for MIR
  stored there, even though the MIR visitor super_mir method does not
  do so. (I did not observe any promoted mir being newly traversed when
  compiling the rustc crate, however.)

* It might be nice to try to unify this code with hir-stats.  Then
  again, the reporting portion is the only common code (I think), and
  it is small compared to the visitors in hir-stats and mir-stats.
2016-12-04 23:36:50 +00:00
Alex Burka
dbfcdd45c6 reference: fix definition of :tt
The reference says that $x:tt matches "either side of the `=>` in macro_rules` which is technically true but completely uninformative. This changes that bullet point to what the book says (a single token or sequence of token trees inside brackets).
2016-12-04 15:58:49 -05:00
bors
341f084d8d Auto merge of #38087 - jooert:remove_unmarked, r=petrochenkov
Remove the `unmarked_api` feature

Closes #37981.
2016-12-04 19:47:18 +00:00
bors
2190f6c3c2 Auto merge of #38086 - semarie:openbsd-i686, r=alexcrichton
Add i686-unknown-openbsd target.

It is a preliminary work. I still have some tests failing, but I have a working rustc binary which is able to rebuild itself.

an update of libc should be required too, but I dunno how to do it with vendor/ layout.

r? @alexcrichton
2016-12-04 16:35:09 +00:00
Jake Goulding
d5f6125fb3 [LLVM 4.0] New bitcode headers and API 2016-12-04 11:14:08 -05:00
Ulrik Sverdrup
d53f82c1d0 alloc: Forward ExactSizeIterator methods in Iterator for Box<I> 2016-12-04 15:46:37 +01:00
Ulrik Sverdrup
705e295b7b iter: Forward ExactSizeIterator methods for &mut I 2016-12-04 15:46:37 +01:00
Ulrik Sverdrup
28852c3c7c binary_heap: Forward ExactSizeIterator::is_empty 2016-12-04 15:46:36 +01:00
Ulrik Sverdrup
343b4c321d collections: Simplify VecDeque::is_empty
Improve is_empty on the VecDeque and its iterators by just comparing
tail and head; this saves a few instructions (to be able to remove the
`& (size - 1)` computation, it would have to know that size is a power of two).
2016-12-04 15:46:36 +01:00
Ulrik Sverdrup
7ba762253c std: Forward ExactSizeIterator::is_empty for Args, ArgsOs iterators 2016-12-04 15:46:36 +01:00
Ulrik Sverdrup
dd3e63aea5 core: Forward ExactSizeIterator::is_empty for Bytes 2016-12-04 15:46:36 +01:00
Xidorn Quan
257f643ee3 Disable ICF opt of MSVC for non-opt build 2016-12-04 23:55:24 +11:00
bors
b462e8fa61 Auto merge of #38082 - jseyfried:macro_invocation_paths, r=nrc
macros: support invocation paths (e.g. `foo::bar!()`) behind `#![feature(use_extern_macros)]`

r? @nrc
2016-12-04 12:51:38 +00:00
Guillaume Gomez
b5ea8c00a3 Fix small typo 2016-12-04 00:48:11 -08:00
bors
d14d74d5f7 Auto merge of #37920 - nikomatsakis:compile-time-regression-37864, r=mw
in region, treat current (and future) item-likes alike

The `visit_fn` code mutates its surrounding context.  Between *items*,
this was saved/restored, but between impl items it was not. This meant
that we wound up with `CallSiteScope` entries with two parents (or
more!).  As far as I can tell, this is harmless in actual type-checking,
since the regions you interact with are always from at most one of those
branches. But it can slow things down.

Before, the effect was limited, since it only applied to impl items
within an impl. After #37660, impl items are visisted all together at
the end, and hence this could create a very messed up
hierarchy. Isolating impl item properly solves both issues.

I cannot come up with a way to unit-test this; for posterity, however,
you can observe the messed up hierarchies with a test as simple as the
following, which would create a callsite scope with two parents both
before and after

```
struct Foo {
}

impl Foo {
    fn bar(&self) -> usize {
        22
    }

    fn baz(&self) -> usize {
        22
    }
}

fn main() { }
```

Fixes #37864.

r? @michaelwoerister

cc @pnkfelix -- can you think of a way to make a regr test?
2016-12-04 06:38:38 +00:00
Sébastien Marie
6774e7aa92 OpenBSD under x86 has particular ABI for returning a struct.
It is like OSX or Windows: small structs are returned as integers.
2016-12-04 07:18:56 +01:00
bors
125474de07 Auto merge of #37857 - shepmaster:llvm-4.0-dinodes, r=michaelwoerister
[LLVM 4.0] Handle new DIFlags enum
2016-12-04 02:30:23 +00:00
Guillaume Gomez
f90986e3a8 Add examples for exit function 2016-12-03 15:46:28 -08:00
Vadim Chugunov
2e03549e67 Ignore test on -windows-gnu. 2016-12-03 15:01:09 -08:00
bors
28d6623bcc Auto merge of #38148 - frewsxcv:rollup, r=frewsxcv
Rollup of 15 pull requests

- Successful merges: #37859, #37919, #38020, #38028, #38029, #38065, #38073, #38077, #38089, #38090, #38096, #38112, #38113, #38130, #38141
- Failed merges:
2016-12-03 20:59:08 +00:00
Corey Farwell
2e038ed3de Rollup merge of #38141 - GuillaumeGomez:component_doc, r=frewsxcv
Add Component examples

r? @frewsxcv
2016-12-03 15:39:54 -05:00
Corey Farwell
02ad965e3f Rollup merge of #38130 - jethrogb:patch-3, r=steveklabnik
Update items section in reference

Make clear that items must be definitions, and add missing extern block
2016-12-03 15:39:53 -05:00
Corey Farwell
d6281faf7e Rollup merge of #38113 - nikomatsakis:incremental-dump-hash, r=michaelwoerister
add a `-Z incremental-dump-hash` flag

This causes us to dump a bunch of has information to stdout that can be
useful in tracking down incremental compilation invalidations,
particularly across crates.
2016-12-03 15:39:53 -05:00
Corey Farwell
3231641f44 Rollup merge of #38112 - tarka:book-testing-fix, r=steveklabnik
Minor fix to testing concurrency section
2016-12-03 15:39:53 -05:00
Corey Farwell
fa1af0c260 Rollup merge of #38096 - michaelwoerister:more-incremental-info, r=nikomatsakis
incr.comp.: Add more output to -Z incremental-info.

Also makes sure that all output from `-Z incremental-info` is prefixed with `incremental:` for better grep-ability.

r? @nikomatsakis
2016-12-03 15:39:53 -05:00
Corey Farwell
6c327adca2 Rollup merge of #38090 - GuillaumeGomez:option_doc, r=frewsxcv
Add cloned example for Option

r? @frewsxcv
2016-12-03 15:39:53 -05:00
Corey Farwell
d0e57b19cf Rollup merge of #38089 - michaelwoerister:disable-debuginfo-test-on-aarch64, r=alexcrichton
debuginfo: Ignore macro-stepping test on aarch64

See https://github.com/rust-lang/rust/issues/37225.

r? @alexcrichton
2016-12-03 15:39:52 -05:00
Corey Farwell
d68c585b01 Rollup merge of #38077 - GuillaumeGomez:ipaddr_doc, r=frewsxcv
Add missing examples for IpAddr enum

r? @frewsxcv
2016-12-03 15:39:52 -05:00
Corey Farwell
cf299315f6 Rollup merge of #38073 - cardoe:fix-typo, r=frewsxcv
bootstrap/README: fix small typo
2016-12-03 15:39:52 -05:00
Corey Farwell
9aef89eb45 Rollup merge of #38065 - estebank:fix-37618, r=jonathandturner
Show `Trait` instead of `<Struct as Trait>` in E0323

For a given file

```
trait Foo {
    fn bar(&self);
}

pub struct FooConstForMethod;

impl Foo for FooConstForMethod {
    const bar: u64 = 1;
}
```

show

```
error[E0323]: item `bar` is an associated const, which doesn't match its trait `Foo`
```

instead of

```
error[E0323]: item `bar` is an associated const, which doesn't match its trait `<FooConstForMethod as Foo>`
```

Fix #37618
2016-12-03 15:39:52 -05:00
Corey Farwell
78c1046b6a Rollup merge of #38029 - dns2utf8:fix_verify.rs, r=petrochenkov
Fix verify.rs

Finishing d2f8fb0 from @jseyfried
2016-12-03 15:39:52 -05:00
Corey Farwell
ca0c8395a0 Rollup merge of #38028 - Mark-Simulacrum:polish, r=nikomatsakis
Refactor one_bound_for_assoc_type to take an Iterator instead of Vec

I doubt the performance implications will be serious, but it will avoid allocating one-element Vecs for the successful case (and avoid allocating vecs at all for any case, too).

`--stage 2` tests passed locally.
2016-12-03 15:39:51 -05:00
Corey Farwell
468ca2c56a Rollup merge of #38020 - GuillaumeGomez:udp-socket-doc, r=frewsxcv
Add part of missing UdpSocket's urls and examples

r? @frewsxcv
2016-12-03 15:39:51 -05:00
Corey Farwell
8916accc10 Rollup merge of #37919 - nikomatsakis:incremental-36168, r=mw
add regression test for #36168

Fixes #36168

r? @michaelwoerister
2016-12-03 15:39:51 -05:00
Corey Farwell
bf99183f87 Rollup merge of #37859 - GuillaumeGomez:net_examples, r=nagisa
Add missing examples for Ipv6Addr

r? @steveklabnik

cc @frewsxcv
2016-12-03 15:39:51 -05:00
Niko Matsakis
f8097066f8 move test for #37290 into run-pass-fulldeps 2016-12-03 14:42:34 -05:00