95528 Commits

Author SHA1 Message Date
bors
799cf3f603 Auto merge of #61881 - glaubitz:sparc64-ffi-abi, r=petrochenkov
librustc_codegen_llvm: Use repr(transparent) for bitflags over repr(C…

…) (#61306)

In order to make sure that Rust's bitflags types are passed the same way in the Rust ABI as they are in the C ABI, we need to use the attribute repr(transparent) over the repr(C) attribute for the single-field bitflags structs in in order to prevent ABI mismatches. Thanks to Michael Karcher for finding this bug.
2019-06-16 17:48:24 +00:00
bors
e3175c34b4 Auto merge of #61754 - nikomatsakis:trait-caching-perf-3, r=pnkfelix
create a "provisional cache" to restore performance in the case of cycles

Introduce a "provisional cache" that caches the results of auto trait resolutions but keeps them from entering the *main* cache until everything is ready. This turned out a bit more complex than I hoped, but I don't see another short term fix -- happy to take suggestions! In the meantime, it's very clear we need to rework the trait solver. This resolves the extreme performance slowdown experienced in #60846 -- I plan to add a perf.rust-lang.org regression test to track this.

Caveat: I've not run `x.py test` in full yet.

r? @pnkfelix
cc @arielb1

Fixes #60846
2019-06-16 14:58:05 +00:00
bors
37b6a5e5e8 Auto merge of #61739 - chansuke:separate-unit-tests, r=petrochenkov
Separate unit tests

I'm working on #61097.

About half of the modules are done but dozens of modules are still remaining. I will rebase and squash the commits later.
2019-06-16 12:15:01 +00:00
Thomas Heck
387ac060d2 make Weak::ptr_eqs into methods 2019-06-16 14:05:44 +02:00
Rijenkii
7c84efddc4
if if if if 2019-06-16 19:01:05 +07:00
Vadim Petrochenkov
5a9643c95b Fix tidy 2019-06-16 14:17:21 +03:00
chansuke
ce51e653c7 Separate libsyntax_ext module 2019-06-16 14:17:01 +03:00
chansuke
f0c7857704 Separate libfmt_macros module 2019-06-16 14:17:01 +03:00
chansuke
c77d3ae9f2 Separate bootstrap module 2019-06-16 14:17:01 +03:00
chansuke
c2a57c88ea Separate libtest module 2019-06-16 14:17:01 +03:00
chansuke
db55aafd72 Separate libserialize module 2019-06-16 14:17:01 +03:00
chansuke
46e622beb9 Separate librustcdoc module 2019-06-16 14:17:01 +03:00
chansuke
638f63b6e4 Separate librustc module 2019-06-16 14:17:01 +03:00
chansuke
b8bc007729 Separate librustc_metadata module 2019-06-16 14:17:01 +03:00
chansuke
b9266794da Separate librustc_lint module 2019-06-16 14:17:01 +03:00
chansuke
0d77084eff Separate librustc_data_structures module 2019-06-16 14:17:01 +03:00
chansuke
7e35995042 Separate librustc_codegen_ssa module 2019-06-16 14:16:55 +03:00
Matthias Krüger
ce728e1399 submodules: update clippy from 7b2a7a22 to be5d17fe
Changes:
````
Fix wrong lifetime of TyCtxt
Use replace_region_in_file for creating the lint list
Restructure rename tests
Register rename to the LintStore.
Rename REDUNDANT_STATIC_LIFETIME to REDUNDANT_STATIC_LIFETIMES.
Remove pub from RedundantStaticLifetime.visit_type function.
Rename const_static_lifetime to redundant_static_lifetime.
Merge StaticConst and StaticStatic lints into StaticConst.
Use RedundantStaticLifetime in StaticStatic.
Move type-checking logic in StaticConst to RedundantStaticLifetime.
Add lint for statics with explicit static lifetime.
minor fix
make it pass dogfood
run rustfmt
fix padding and put clippy someplaces
show default lint levels
group printing
prelim arg parse
move Lint static def into its own module
switch to sorted usable lints
Update clippy_dev/src/main.rs
initial commit for help improvements on clippy-driver
````
2019-06-16 12:40:22 +02:00
chansuke
ed54d10de6 Separate libgraphviz module 2019-06-16 13:08:09 +03:00
chansuke
40a0c835b5 Separate libarena::lib module 2019-06-16 13:08:09 +03:00
chansuke
89292beedb Separate liballoc module 2019-06-16 13:08:09 +03:00
Vadim Petrochenkov
0886bc4cbf compiletest: Move pass mode update into a separate function 2019-06-16 12:43:35 +03:00
bors
68655029d4 Auto merge of #60730 - matthewjasper:optimize-false-edges, r=pnkfelix
Optimize matches

Attempt to fix or improve #60571

This is breaking some diagnostics because the MIR for match arms isn't in source order any more.

cc @centril
2019-06-16 09:30:34 +00:00
Vadim Petrochenkov
932ea64175 compiletest: Remove skip-codegen 2019-06-16 12:23:22 +03:00
Vadim Petrochenkov
8e8fba1b3b compiletest: Validate pass modes harder 2019-06-16 12:23:22 +03:00
Vadim Petrochenkov
6203f68735 compiletest: Introduce // {check,build,run}-pass pass modes 2019-06-16 12:23:22 +03:00
Christian Poveda
1e388703c0 Add special behaviour when int is zero 2019-06-16 03:49:13 -05:00
Ralf Jung
2eb074dff1 make example code typecheck at least 2019-06-16 10:19:22 +02:00
Ralf Jung
86e283a1b7 keep links in local crate where possible 2019-06-16 10:18:12 +02:00
Christian Poveda
c5c06a5f62 Replace to_bits by force_bits and move size as parameter 2019-06-16 02:33:00 -05:00
Christian Poveda
681bd83828 Change to_ptr by force_ptr 2019-06-16 02:33:00 -05:00
Christian Poveda
3bd1734ea2 Add force_bits and force_ptr methods 2019-06-16 02:33:00 -05:00
bors
374c63e0fc Auto merge of #61886 - Centril:rollup-3p3m2fu, r=Centril
Rollup of 6 pull requests

Successful merges:

 - #61447 (Add some Vec <-> VecDeque documentation)
 - #61704 (Pass LLVM linker flags to librustc_llvm build)
 - #61829 (rustbuild: include llvm-libunwind in dist tarball)
 - #61832 (update miri)
 - #61866 (Remove redundant `clone()`s)
 - #61869 (Cleanup some new active feature gates)

Failed merges:

r? @ghost
2019-06-16 04:46:14 +00:00
Scott McMurray
af0e35e6a6 Help LLVM better optimize slice::Iter(Mut)::len 2019-06-15 21:15:25 -07:00
Mazdak Farrokhzad
cd9bb48f7f
Rollup merge of #61869 - Centril:cleanup-feature-gates, r=alexreg
Cleanup some new active feature gates

r? @alexreg
2019-06-16 06:05:19 +02:00
Mazdak Farrokhzad
2ba1d94f7a
Rollup merge of #61866 - sinkuu:redundant_clone, r=petrochenkov
Remove redundant `clone()`s
2019-06-16 06:05:18 +02:00
Mazdak Farrokhzad
af56111651
Rollup merge of #61832 - RalfJung:miri, r=oli-obk
update miri

Fixes https://github.com/rust-lang/rust/issues/61830
Fixes https://github.com/rust-lang/rust/issues/61848

r? @oli-obk
2019-06-16 06:05:17 +02:00
Mazdak Farrokhzad
4d528197a0
Rollup merge of #61829 - Keruspe:libunwind-src, r=alexcrichton
rustbuild: include llvm-libunwind in dist tarball

Without this we cannot build with llvm-libunwind enabled from a release tarball.

Could it be backported in a beta rollup somehow so that this gets fixed before 1.36 is released?
2019-06-16 06:05:15 +02:00
Mazdak Farrokhzad
7d99652783
Rollup merge of #61704 - petrhosek:llvm-linker-flags, r=alexcrichton
Pass LLVM linker flags to librustc_llvm build

Some -L and -l flags may be needed even when building librustc_llvm,
for example when using static libc++ on Linux we may need to manually
specify the library search path and -ldl -lpthread as additional link
dependencies. We pass LLVM linker flags from config to librustc_llvm
build to make sure these cases are handled.
2019-06-16 06:05:14 +02:00
Mazdak Farrokhzad
006440a7fe
Rollup merge of #61447 - scottmcm:vec-vecdeque, r=sfackler
Add some Vec <-> VecDeque documentation

These are more than just `.into_iter().collect()`, so talk about some of their nuances.

For VecDeque -> Vec I'm trying to intentionally not write a guarantee for people making their own `Vec`s, since the rules are more complicated than I think we want to commit to forever.

The "Vec -> VecDeque doesn't reallocate" guarantee seems reasonable, though.  (And I'm intentionally ambiguous about when it's O(1) instead of O(n).)
2019-06-16 06:05:12 +02:00
John Paul Adrian Glaubitz
3fa7411050 librustc_codegen_llvm: Use repr(transparent) for bitflags over repr(C) (#61306)
In order to make sure that Rust's bitflags types are passed the same
way in the Rust ABI as they are in the C ABI, we need to use the attribute
repr(transparent) over the repr(C) attribute for the single-field bitflags
structs in in order to prevent ABI mismatches. Thanks to Michael Karcher
for finding this bug.
2019-06-16 02:53:33 +02:00
Ralf Jung
665aa3e5bb minor edits 2019-06-16 00:05:17 +02:00
Ralf Jung
c489636ce1 mention that overwrite-without-drop also violates the drop guarantee, and link some more stuff 2019-06-15 23:56:42 +02:00
Ralf Jung
b66dcb98af explain better that structural pinning is a per-field choice 2019-06-15 23:51:42 +02:00
bors
0dc9e9c10c Auto merge of #61828 - RalfJung:cfg-if, r=alexcrichton
make sure we use cfg-if as a std dependency

xargo currently fails to build libstd because this feature is missing. My guess is that it works in rustc because the feature is enabled elsewhere, but that does not help for a libstd-only build.

Miri is currently in a state where it is shipped but broken, which makes CI fail for projects that are tested in Miri. So this is kind of urgent.

Cc @alexcrichton  https://github.com/rust-lang/rust/pull/61720
2019-06-15 21:15:28 +00:00
Jonas Schievink
ba30dcad2f Remove the default type of Rem::Output 2019-06-15 22:22:06 +02:00
bors
bb16e72954 Auto merge of #61868 - Centril:rollup-gglsecp, r=Centril
Rollup of 6 pull requests

Successful merges:

 - #61785 (note some safety concerns of raw-ptr-to-ref casts)
 - #61805 (typeck: Fix ICE for blocks in repeat expr count.)
 - #61813 (Remove some unnecessary symbol interner ops)
 - #61824 (in which we decline to lint single-use lifetimes in `derive`d impls)
 - #61844 (Change `...` to `..=` where applicable)
 - #61854 (Minor cosmetic improvements to accompany PR 61825)

Failed merges:

r? @ghost
2019-06-15 18:24:18 +00:00
Mazdak Farrokhzad
46f405ec4d type_alias_enum_variants: Remove from unstable book. 2019-06-15 19:18:09 +02:00
Mazdak Farrokhzad
a70653ac7e enum-variant-generic-args: describe + account for unit variants. 2019-06-15 19:18:09 +02:00
Mazdak Farrokhzad
26f98fdf58 enum-variant-generic-args-pats-pass: rename; test isn't specific to patterns. 2019-06-15 19:18:09 +02:00