Upgrade Emscripten targets to use upstream LLVM backend

- Compatible with Emscripten 1.38.46-upstream or later upstream.
 - Refactors the Emscripten target spec to share code with other wasm
   targets.
 - Replaces the old incorrect wasm32 C call ABI with the correct one,
   preserving the old one as wasm32_bindgen_compat for wasm-bindgen
   compatibility.
 - Updates the varargs ABI used by Emscripten and deletes the old one.
 - Removes the obsolete wasm32-experimental-emscripten target.
 - Uses EMCC_CFLAGS on CI to avoid the timeout problems with #63649.
This commit is contained in:
Thomas Lively 2019-08-16 22:08:01 -07:00
parent 0e8a4b441c
commit 2bf59bea48
144 changed files with 378 additions and 538 deletions

View file

@ -1,5 +1,5 @@
// run-pass
// ignore-wasm32-bare always compiled as panic=abort right now
// ignore-emscripten compiled with panic=abort by default
// Check that values are not leaked when a dtor panics (#14875)

View file

@ -1,4 +1,5 @@
// build-pass
// ignore-asmjs wasm2js does not support source maps yet
// compile-flags: -g
pub struct Dst {

View file

@ -1,6 +1,7 @@
// run-pass
// aux-build:issue-24687-lib.rs
// compile-flags:-g
// ignore-asmjs wasm2js does not support source maps yet
extern crate issue_24687_lib as d;

View file

@ -3,6 +3,7 @@
// as options to the compiler.
// compile-flags:-g -g -O -O
// ignore-asmjs wasm2js does not support source maps yet
fn main() {
assert_eq!(1, 1);

View file

@ -1,5 +1,6 @@
// run-pass
// compile-flags:-g
// ignore-asmjs wasm2js does not support source maps yet
fn helper<F: FnOnce(usize) -> bool>(_f: F) {
print!("");

View file

@ -1,5 +1,5 @@
// run-pass
// ignore-wasm32-bare compiled with panic=abort by default
// ignore-emscripten compiled with panic=abort by default
use std::panic;

View file

@ -1,5 +1,6 @@
// run-pass
// compile-flags: -g
// ignore-asmjs wasm2js does not support source maps yet
use std::ops::Deref;

View file

@ -1,7 +1,7 @@
// run-pass
// ignore-windows
// ignore-macos
// ignore-wasm32-bare common linkage not implemented right now
// ignore-emscripten common linkage not implemented right now
#![feature(linkage)]

View file

@ -1,5 +1,6 @@
// run-pass
// compile-flags:-g
// ignore-asmjs wasm2js does not support source maps yet
// In this test we just want to make sure that the code below does not lead to
// a debuginfo verification assertion during compilation. This was caused by the

View file

@ -2,6 +2,7 @@
// Regression test for #36856.
// compile-flags:-g
// ignore-asmjs wasm2js does not support source maps yet
fn g() -> bool {
false

View file

@ -2,6 +2,7 @@
// Regression test for #42210.
// compile-flags: -g
// ignore-asmjs wasm2js does not support source maps yet
trait Foo {
fn foo() { }

View file

@ -1,5 +1,5 @@
// run-pass
// ignore-wasm32-bare compiled with panic=abort by default
// ignore-emscripten compiled with panic=abort by default
use std::panic;

View file

@ -1,6 +1,7 @@
// run-pass
#![allow(unused_variables)]
// compile-flags:--test -g
// ignore-asmjs wasm2js does not support source maps yet
#[cfg(target_os = "macos")]
#[test]

View file

@ -1,6 +1,8 @@
// run-pass
// compile-flags:--test -O
// ignore-emscripten compiled with panic=abort by default
#[test]
#[should_panic(expected = "creating inhabited type")]
fn test() {

View file

@ -8,6 +8,7 @@
// compile-flags:-g
// ignore-pretty issue #37195
// ignore-asmjs wasm2js does not support source maps yet
#![feature(non_ascii_idents)]

View file

@ -1,5 +1,4 @@
// build-pass (FIXME(62277): could be check-pass?)
// ignore-emscripten no i128 support
fn fibs(n: u32) -> impl Iterator<Item=u128> {
(0 .. n)

View file

@ -1,5 +1,7 @@
// run-pass
// compile-flags:-C debuginfo=2
// ignore-asmjs wasm2js does not support source maps yet
fn foo() -> impl Copy {
foo
}