From 36df9c55e595c33c27095e0b2a4822adfa2da0c6 Mon Sep 17 00:00:00 2001 From: bjorn3 Date: Tue, 26 Jan 2021 11:09:06 +0100 Subject: [PATCH] Revert "Share wasm-bindgen compat abi selection code" This reverts commit e7a056fe20f7ec5a475923ff2f4eda8ca9e1a74b. --- compiler/rustc_middle/src/ty/layout.rs | 2 +- compiler/rustc_target/src/abi/call/mod.rs | 20 ++++---------------- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/compiler/rustc_middle/src/ty/layout.rs b/compiler/rustc_middle/src/ty/layout.rs index 2bec761b0e5..a6b7b393213 100644 --- a/compiler/rustc_middle/src/ty/layout.rs +++ b/compiler/rustc_middle/src/ty/layout.rs @@ -2752,7 +2752,7 @@ fn new_internal( attrs }); - if call::use_wasm_bindgen_compat_abi(target) { + if target.arch == "wasm32" && target.os == "unknown" { // wasm-bindgen depends on ABI details and is incompatible with the // correct C ABI, so this is being kept around until wasm-bindgen // can be fixed to work with the correct ABI. See #63649 for further diff --git a/compiler/rustc_target/src/abi/call/mod.rs b/compiler/rustc_target/src/abi/call/mod.rs index 521aea6dd72..2cbd52bf3e9 100644 --- a/compiler/rustc_target/src/abi/call/mod.rs +++ b/compiler/rustc_target/src/abi/call/mod.rs @@ -1,6 +1,6 @@ use crate::abi::{self, Abi, Align, FieldsShape, Size}; use crate::abi::{HasDataLayout, LayoutOf, TyAndLayout, TyAndLayoutMethods}; -use crate::spec::{self, HasTargetSpec, Target}; +use crate::spec::{self, HasTargetSpec}; mod aarch64; mod amdgpu; @@ -631,10 +631,9 @@ pub fn adjust_for_cabi(&mut self, cx: &C, abi: spec::abi::Abi) -> Result<(), "nvptx64" => nvptx64::compute_abi_info(self), "hexagon" => hexagon::compute_abi_info(self), "riscv32" | "riscv64" => riscv::compute_abi_info(cx, self), - "wasm32" => if use_wasm_bindgen_compat_abi(cx.target_spec()) { - wasm32_bindgen_compat::compute_abi_info(self) - } else { - wasm32::compute_abi_info(cx, self) + "wasm32" => match cx.target_spec().os.as_str() { + "emscripten" | "wasi" => wasm32::compute_abi_info(cx, self), + _ => wasm32_bindgen_compat::compute_abi_info(self), }, "asmjs" => wasm32::compute_abi_info(cx, self), a => return Err(format!("unrecognized arch \"{}\" in target specification", a)), @@ -643,14 +642,3 @@ pub fn adjust_for_cabi(&mut self, cx: &C, abi: spec::abi::Abi) -> Result<(), Ok(()) } } - -pub fn use_wasm_bindgen_compat_abi(target_spec: &Target) -> bool { - if target_spec.arch.as_str() == "wasm32" { - match target_spec.os.as_str() { - "emscripten" | "wasi" => false, - _ => true, - } - } else { - false - } -}