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.
This commit is contained in:
bors 2017-12-07 02:13:13 +00:00
commit d516d5dff7
5 changed files with 4 additions and 30 deletions

View File

@ -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 => {}

View File

@ -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]

View File

@ -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();
}

View File

@ -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)]

View File

@ -15,7 +15,6 @@
// ignore-arm
// ignore-aarch64
#![feature(abi_sysv64)]
#![feature(asm)]
#[cfg(target_arch = "x86_64")]