From c680f0818289dfcf5583a6a46aef0a3e4e7c54d2 Mon Sep 17 00:00:00 2001 From: Corey Farwell Date: Wed, 17 Jun 2015 19:46:33 -0700 Subject: [PATCH 1/3] Add regression test for #21622 Closes #21622 --- src/test/run-pass/issue-21622.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/test/run-pass/issue-21622.rs diff --git a/src/test/run-pass/issue-21622.rs b/src/test/run-pass/issue-21622.rs new file mode 100644 index 0000000000000..32f52308af162 --- /dev/null +++ b/src/test/run-pass/issue-21622.rs @@ -0,0 +1,28 @@ +// Copyright 2015 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + + +struct Index; + +impl Index { + fn new() -> Self { Index } +} + +fn user() { + let new = Index::new; + + fn inner() { + let index = Index::new(); + } + + let index2 = new(); +} + +fn main() {} From d234b0bb5f3210ca255d1ad71eb13add272fd078 Mon Sep 17 00:00:00 2001 From: Johannes Oertel Date: Thu, 18 Jun 2015 17:11:44 +0200 Subject: [PATCH 2/3] rustdoc: Update document title when displaying search results Fixes #26360. --- src/librustdoc/html/static/main.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index 7f8f40ff08a4d..fb8f511795e87 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -571,6 +571,9 @@ return; } + // Update document title to maintain a meaningful browser history + $(document).prop("title", "Results for " + query.query + " - Rust"); + // Because searching is incremental by character, only the most // recent search query is added to the browser history. if (browserSupportsHistoryApi()) { From 57260262e76ec35f05d4a9fad4d13cda212f2c62 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Thu, 18 Jun 2015 15:24:36 -0700 Subject: [PATCH 3/3] rustc_trans: Disable landing pads on MSVC Currently all these do is cause linker errors as they try to lower to GNU-like exception handling, none of which exists with MSVC. --- src/librustc_trans/trans/base.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/librustc_trans/trans/base.rs b/src/librustc_trans/trans/base.rs index c2293dcc6d483..b382b71343f4e 100644 --- a/src/librustc_trans/trans/base.rs +++ b/src/librustc_trans/trans/base.rs @@ -756,7 +756,12 @@ pub fn invoke<'blk, 'tcx>(bcx: Block<'blk, 'tcx>, } pub fn need_invoke(bcx: Block) -> bool { - if bcx.sess().no_landing_pads() { + // FIXME(#25869) currently unwinding is not implemented for MSVC and our + // normal unwinding infrastructure ends up just causing linker + // errors with the current LLVM implementation, so landing + // pads are disabled entirely for MSVC targets + if bcx.sess().no_landing_pads() || + bcx.sess().target.target.options.is_like_msvc { return false; }