diff options
Diffstat (limited to 'src/test/run-make/wasm-panic-small')
-rw-r--r-- | src/test/run-make/wasm-panic-small/Makefile | 17 | ||||
-rw-r--r-- | src/test/run-make/wasm-panic-small/foo.rs | 27 |
2 files changed, 44 insertions, 0 deletions
diff --git a/src/test/run-make/wasm-panic-small/Makefile b/src/test/run-make/wasm-panic-small/Makefile new file mode 100644 index 000000000..68397e4bc --- /dev/null +++ b/src/test/run-make/wasm-panic-small/Makefile @@ -0,0 +1,17 @@ +-include ../../run-make-fulldeps/tools.mk + +# only-wasm32-bare + +all: + $(RUSTC) foo.rs -C lto -O --target wasm32-unknown-unknown --cfg a + wc -c < $(TMPDIR)/foo.wasm + [ "`wc -c < $(TMPDIR)/foo.wasm`" -lt "1024" ] + $(RUSTC) foo.rs -C lto -O --target wasm32-unknown-unknown --cfg b + wc -c < $(TMPDIR)/foo.wasm + [ "`wc -c < $(TMPDIR)/foo.wasm`" -lt "5120" ] + $(RUSTC) foo.rs -C lto -O --target wasm32-unknown-unknown --cfg c + wc -c < $(TMPDIR)/foo.wasm + [ "`wc -c < $(TMPDIR)/foo.wasm`" -lt "5120" ] + $(RUSTC) foo.rs -C lto -O --target wasm32-unknown-unknown --cfg d + wc -c < $(TMPDIR)/foo.wasm + [ "`wc -c < $(TMPDIR)/foo.wasm`" -lt "5120" ] diff --git a/src/test/run-make/wasm-panic-small/foo.rs b/src/test/run-make/wasm-panic-small/foo.rs new file mode 100644 index 000000000..6df52affe --- /dev/null +++ b/src/test/run-make/wasm-panic-small/foo.rs @@ -0,0 +1,27 @@ +#![crate_type = "cdylib"] + +#[no_mangle] +#[cfg(a)] +pub fn foo() { + panic!("test"); +} + +#[no_mangle] +#[cfg(b)] +pub fn foo() { + panic!("{}", 1); +} + +#[no_mangle] +#[cfg(c)] +pub fn foo() { + panic!("{}", "a"); +} + +#[no_mangle] +#[cfg(d)] +pub fn foo() -> usize { + use std::cell::Cell; + thread_local!(static A: Cell<Vec<u32>> = Cell::new(Vec::new())); + A.try_with(|x| x.take().len()).unwrap_or(0) +} |