about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-12-07 02:13:13 +0000
committerbors <bors@rust-lang.org>2017-12-07 02:13:13 +0000
commitd516d5dff72a5688cd8ebd13ee7c80086b9e115c (patch)
treeeffe1cbc5aeaab45f0638f6f10525305c209c2c4 /src
parent061bdb5c127311654ca7691ff08c70e9a3a0974b (diff)
parentd68d1278752d67bd8dc98958713daabf716db549 (diff)
downloadrust-d516d5dff72a5688cd8ebd13ee7c80086b9e115c.tar.gz
rust-d516d5dff72a5688cd8ebd13ee7c80086b9e115c.zip
Auto merge of #46528 - CensoredUsername:stabilize_abi_sysv64, r=arielb1
Stabilize abi_sysv64

Closes #36167, stabilizing the use of the "sysv64" ABI on x64 platforms where it is not the default ABI.

FCP on this is complete in the tracking issue.
Diffstat (limited to 'src')
-rw-r--r--src/libsyntax/feature_gate.rs12
-rw-r--r--src/test/codegen/abi-sysv64.rs1
-rw-r--r--src/test/compile-fail/feature-gate-abi-sysv64.rs19
-rw-r--r--src/test/run-pass/abi-sysv64-arg-passing.rs1
-rw-r--r--src/test/run-pass/abi-sysv64-register-usage.rs1
5 files changed, 4 insertions, 30 deletions
diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs
index d4b54e896ab..e5296e7d88c 100644
--- a/src/libsyntax/feature_gate.rs
+++ b/src/libsyntax/feature_gate.rs
@@ -284,10 +284,6 @@ declare_features! (
     // Allows all literals in attribute lists and values of key-value pairs.
     (active, attr_literals, "1.13.0", Some(34981)),
 
-    // Allows the sysV64 ABI to be specified on all platforms
-    // instead of just the platforms on which it is the C ABI
-    (active, abi_sysv64, "1.13.0", Some(36167)),
-
     // Allows untagged unions `union U { ... }`
     (active, untagged_unions, "1.13.0", Some(32836)),
 
@@ -520,6 +516,9 @@ declare_features! (
     (accepted, rvalue_static_promotion, "1.21.0", Some(38865)),
     // Allow Drop types in constants (RFC 1440)
     (accepted, drop_types_in_const, "1.22.0", Some(33156)),
+    // Allows the sysV64 ABI to be specified on all platforms
+    // instead of just the platforms on which it is the C ABI
+    (accepted, abi_sysv64, "1.24.0", Some(36167)),
 );
 
 // If you change this, please modify src/doc/unstable-book as well. You must
@@ -1246,10 +1245,6 @@ impl<'a> PostExpansionVisitor<'a> {
                 gate_feature_post!(&self, unboxed_closures, span,
                                    "rust-call ABI is subject to change");
             },
-            Abi::SysV64 => {
-                gate_feature_post!(&self, abi_sysv64, span,
-                                   "sysv64 ABI is experimental and subject to change");
-            },
             Abi::PtxKernel => {
                 gate_feature_post!(&self, abi_ptx, span,
                                    "PTX ABIs are experimental and subject to change");
@@ -1272,6 +1267,7 @@ impl<'a> PostExpansionVisitor<'a> {
             Abi::Fastcall |
             Abi::Aapcs |
             Abi::Win64 |
+            Abi::SysV64 |
             Abi::Rust |
             Abi::C |
             Abi::System => {}
diff --git a/src/test/codegen/abi-sysv64.rs b/src/test/codegen/abi-sysv64.rs
index 4f6a50eab49..920f5cbcca3 100644
--- a/src/test/codegen/abi-sysv64.rs
+++ b/src/test/codegen/abi-sysv64.rs
@@ -18,7 +18,6 @@
 // compile-flags: -C no-prepopulate-passes
 
 #![crate_type = "lib"]
-#![feature(abi_sysv64)]
 
 // CHECK: define x86_64_sysvcc i64 @has_sysv64_abi
 #[no_mangle]
diff --git a/src/test/compile-fail/feature-gate-abi-sysv64.rs b/src/test/compile-fail/feature-gate-abi-sysv64.rs
deleted file mode 100644
index 2a4aae8c06b..00000000000
--- a/src/test/compile-fail/feature-gate-abi-sysv64.rs
+++ /dev/null
@@ -1,19 +0,0 @@
-// 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.
-
-// Test that the sysv64 ABI cannot be used when abi-sysv64 feature
-// gate is not used.
-
-extern "sysv64" fn foo() {}
-//~^ ERROR sysv64 ABI is experimental and subject to change
-
-fn main() {
-    foo();
-}
diff --git a/src/test/run-pass/abi-sysv64-arg-passing.rs b/src/test/run-pass/abi-sysv64-arg-passing.rs
index 23dd0603184..4ec3f16f7af 100644
--- a/src/test/run-pass/abi-sysv64-arg-passing.rs
+++ b/src/test/run-pass/abi-sysv64-arg-passing.rs
@@ -39,7 +39,6 @@
 
 // note: windows is ignored as rust_test_helpers does not have the sysv64 abi on windows
 
-#![feature(abi_sysv64)]
 #[allow(dead_code)]
 #[allow(improper_ctypes)]
 
diff --git a/src/test/run-pass/abi-sysv64-register-usage.rs b/src/test/run-pass/abi-sysv64-register-usage.rs
index 7e3b32122ac..1cae8671266 100644
--- a/src/test/run-pass/abi-sysv64-register-usage.rs
+++ b/src/test/run-pass/abi-sysv64-register-usage.rs
@@ -15,7 +15,6 @@
 // ignore-arm
 // ignore-aarch64
 
-#![feature(abi_sysv64)]
 #![feature(asm)]
 
 #[cfg(target_arch = "x86_64")]