about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-05-02 14:56:11 +0000
committerbors <bors@rust-lang.org>2017-05-02 14:56:11 +0000
commited1f26ddda15b2bcf613a257e813e8b02ee14dff (patch)
tree4bc9cd842d2113827d984404610e91f183dd62bd /src/test
parent96e2c34286099eea4f51daaadbb82a8fbe99e0f6 (diff)
parente0bfd19add662c07eb102818ce579315ddc90094 (diff)
downloadrust-ed1f26ddda15b2bcf613a257e813e8b02ee14dff.tar.gz
rust-ed1f26ddda15b2bcf613a257e813e8b02ee14dff.zip
Auto merge of #41702 - frewsxcv:rollup, r=frewsxcv
Rollup of 6 pull requests

- Successful merges: #41661, #41662, #41673, #41688, #41692, #41693
- Failed merges:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/codegen/align-struct.rs57
-rw-r--r--src/test/compile-fail/anon-params-deprecated.rs25
-rw-r--r--src/test/run-pass-fulldeps/issue-37290/auxiliary/lint.rs68
-rw-r--r--src/test/run-pass-fulldeps/issue-37290/main.rs30
4 files changed, 82 insertions, 98 deletions
diff --git a/src/test/codegen/align-struct.rs b/src/test/codegen/align-struct.rs
new file mode 100644
index 00000000000..d4828be037a
--- /dev/null
+++ b/src/test/codegen/align-struct.rs
@@ -0,0 +1,57 @@
+// Copyright 2016 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 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// compile-flags: -C no-prepopulate-passes
+#![crate_type = "lib"]
+
+#![feature(attr_literals)]
+#![feature(repr_align)]
+
+#[repr(align(64))]
+pub struct Align64(i32);
+
+pub struct Nested64 {
+    a: Align64,
+    b: i32,
+    c: i32,
+    d: i8,
+}
+
+pub enum Enum64 {
+    A(Align64),
+    B(i32),
+}
+
+// CHECK-LABEL: @align64
+#[no_mangle]
+pub fn align64(i : i32) -> Align64 {
+// CHECK: %a64 = alloca %Align64, align 64
+// CHECK: call void @llvm.memcpy.{{.*}}(i8* %{{.*}}, i8* %{{.*}}, i{{[0-9]+}} 64, i32 64, i1 false)
+    let a64 = Align64(i);
+    a64
+}
+
+// CHECK-LABEL: @nested64
+#[no_mangle]
+pub fn nested64(a: Align64, b: i32, c: i32, d: i8) -> Nested64 {
+// CHECK: %n64 = alloca %Nested64, align 64
+// CHECK: %a = alloca %Align64, align 64
+    let n64 = Nested64 { a, b, c, d };
+    n64
+}
+
+// CHECK-LABEL: @enum64
+#[no_mangle]
+pub fn enum64(a: Align64) -> Enum64 {
+// CHECK: %e64 = alloca %Enum64, align 64
+// CHECK: %a = alloca %Align64, align 64
+    let e64 = Enum64::A(a);
+    e64
+}
diff --git a/src/test/compile-fail/anon-params-deprecated.rs b/src/test/compile-fail/anon-params-deprecated.rs
new file mode 100644
index 00000000000..76edae17dc1
--- /dev/null
+++ b/src/test/compile-fail/anon-params-deprecated.rs
@@ -0,0 +1,25 @@
+// Copyright 2017 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 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+#![forbid(anonymous_parameters)]
+// Test for the anonymous_parameters deprecation lint (RFC 1685)
+
+trait T {
+    fn foo(i32); //~ ERROR use of deprecated anonymous parameter
+                 //~| WARNING hard error
+
+    fn bar_with_default_impl(String, String) {}
+    //~^ ERROR use of deprecated anonymous parameter
+    //~| WARNING hard error
+    //~| ERROR use of deprecated anonymous parameter
+    //~| WARNING hard error
+}
+
+fn main() {}
diff --git a/src/test/run-pass-fulldeps/issue-37290/auxiliary/lint.rs b/src/test/run-pass-fulldeps/issue-37290/auxiliary/lint.rs
deleted file mode 100644
index 778c49d144c..00000000000
--- a/src/test/run-pass-fulldeps/issue-37290/auxiliary/lint.rs
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2012-2014 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 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// This flag is needed for plugins to work:
-// compile-flags: -C prefer-dynamic
-
-#![feature(plugin_registrar, rustc_private)]
-#![crate_type = "dylib"]
-#![deny(region_hierarchy)]
-
-extern crate syntax;
-#[macro_use]
-extern crate rustc;
-extern crate rustc_plugin;
-
-use rustc::lint::{LateContext, LintPass, LateLintPass, LintArray, LintContext};
-use rustc::hir;
-use rustc::hir::intravisit::FnKind;
-use rustc::middle::region::CodeExtent;
-use rustc::util::nodemap::FxHashMap;
-
-use syntax::ast::{self, NodeId};
-use syntax::codemap::Span;
-
-declare_lint!(REGION_HIERARCHY, Warn, "warn about bogus region hierarchy");
-
-struct Pass {
-    map: FxHashMap<CodeExtent, NodeId>
-}
-
-impl LintPass for Pass {
-    fn get_lints(&self) -> LintArray { lint_array!(REGION_HIERARCHY) }
-}
-
-impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Pass {
-    fn check_fn(&mut self, cx: &LateContext,
-                              fk: FnKind, _: &hir::FnDecl, body: &hir::Body,
-                              span: Span, node: ast::NodeId)
-    {
-        if let FnKind::Closure(..) = fk { return }
-
-        let mut extent = cx.tcx.region_maps.node_extent(body.value.id);
-        while let Some(parent) = cx.tcx.region_maps.opt_encl_scope(extent) {
-            extent = parent;
-        }
-        if let Some(other) = self.map.insert(extent, node) {
-            cx.span_lint(REGION_HIERARCHY, span, &format!(
-                "different fns {:?}, {:?} with the same root extent {:?}",
-                cx.tcx.hir.local_def_id(other),
-                cx.tcx.hir.local_def_id(node),
-                extent));
-        }
-    }
-}
-
-#[plugin_registrar]
-pub fn plugin_registrar(reg: &mut ::rustc_plugin::Registry) {
-    reg.register_late_lint_pass(Box::new(
-        Pass { map: FxHashMap() }
-    ));
-}
diff --git a/src/test/run-pass-fulldeps/issue-37290/main.rs b/src/test/run-pass-fulldeps/issue-37290/main.rs
deleted file mode 100644
index 394ad92b1d8..00000000000
--- a/src/test/run-pass-fulldeps/issue-37290/main.rs
+++ /dev/null
@@ -1,30 +0,0 @@
-// Copyright 2012-2014 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 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-// aux-build:lint.rs
-
-#![feature(plugin)]
-#![plugin(lint)]
-
-struct Foo {
-}
-
-impl Foo {
-    fn bar(&self) -> usize {
-    22
-    }
-
-    fn baz(&self) -> usize {
-    22
-    }
-}
-
-fn main() { }
-