about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-08-16 08:26:33 +0200
committerGitHub <noreply@github.com>2019-08-16 08:26:33 +0200
commit100a02a0d8b0ff44885aa792de2a355ff1209df2 (patch)
treefe0f2185dc15b7b331fd10d511b949689f74b6ee /src
parentf7af19c279b8b7ea3d2c21fcbd67164af8d5d968 (diff)
parent26ee99e5d473e8743e3faa08c6cb89d3acb29104 (diff)
downloadrust-100a02a0d8b0ff44885aa792de2a355ff1209df2.tar.gz
rust-100a02a0d8b0ff44885aa792de2a355ff1209df2.zip
Rollup merge of #62593 - kper:cleanup_abi, r=Centril
Group all ABI tests.

r? @eddyb

Closes #62401
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/abi/abi-sysv64-arg-passing.rs (renamed from src/test/ui/abi-sysv64-arg-passing.rs)0
-rw-r--r--src/test/ui/abi/abi-sysv64-register-usage.rs (renamed from src/test/ui/abi-sysv64-register-usage.rs)0
-rw-r--r--src/test/ui/abi/abort-on-c-abi.rs (renamed from src/test/ui/abort-on-c-abi.rs)0
-rw-r--r--src/test/ui/abi/anon-extern-mod.rs (renamed from src/test/ui/anon-extern-mod.rs)0
-rw-r--r--src/test/ui/abi/auxiliary/anon-extern-mod-cross-crate-1.rs (renamed from src/test/ui/auxiliary/anon-extern-mod-cross-crate-1.rs)0
-rw-r--r--src/test/ui/abi/auxiliary/foreign_lib.rs (renamed from src/test/ui/auxiliary/foreign_lib.rs)0
-rw-r--r--src/test/ui/abi/c-stack-as-value.rs (renamed from src/test/ui/c-stack-as-value.rs)0
-rw-r--r--src/test/ui/abi/cabi-int-widening.rs (renamed from src/test/ui/cabi-int-widening.rs)0
-rw-r--r--src/test/ui/abi/consts/auxiliary/anon-extern-mod-cross-crate-1.rs (renamed from src/test/ui/consts/auxiliary/anon-extern-mod-cross-crate-1.rs)0
-rw-r--r--src/test/ui/abi/cross-crate/anon-extern-mod-cross-crate-2.rs (renamed from src/test/ui/cross-crate/anon-extern-mod-cross-crate-2.rs)0
-rw-r--r--src/test/ui/abi/cross-crate/auxiliary/anon-extern-mod-cross-crate-1.rs (renamed from src/test/ui/cross-crate/auxiliary/anon-extern-mod-cross-crate-1.rs)0
-rw-r--r--src/test/ui/abi/duplicated-external-mods.rs (renamed from src/test/ui/duplicated-external-mods.rs)0
-rw-r--r--src/test/ui/abi/extern/auxiliary/extern-crosscrate-source.rs (renamed from src/test/ui/extern/auxiliary/extern-crosscrate-source.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-call-deep.rs (renamed from src/test/ui/extern/extern-call-deep.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-call-deep2.rs (renamed from src/test/ui/extern/extern-call-deep2.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-call-direct.rs (renamed from src/test/ui/extern/extern-call-direct.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-call-indirect.rs (renamed from src/test/ui/extern/extern-call-indirect.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-call-scrub.rs (renamed from src/test/ui/extern/extern-call-scrub.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-crosscrate.rs (renamed from src/test/ui/extern/extern-crosscrate.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-TwoU16s.rs (renamed from src/test/ui/extern/extern-pass-TwoU16s.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-TwoU32s.rs (renamed from src/test/ui/extern/extern-pass-TwoU32s.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-TwoU64s.rs (renamed from src/test/ui/extern/extern-pass-TwoU64s.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-TwoU8s.rs (renamed from src/test/ui/extern/extern-pass-TwoU8s.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-char.rs (renamed from src/test/ui/extern/extern-pass-char.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-double.rs (renamed from src/test/ui/extern/extern-pass-double.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-empty.rs (renamed from src/test/ui/extern/extern-pass-empty.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-u32.rs (renamed from src/test/ui/extern/extern-pass-u32.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-u64.rs (renamed from src/test/ui/extern/extern-pass-u64.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-return-TwoU16s.rs (renamed from src/test/ui/extern/extern-return-TwoU16s.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-return-TwoU32s.rs (renamed from src/test/ui/extern/extern-return-TwoU32s.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-return-TwoU64s.rs (renamed from src/test/ui/extern/extern-return-TwoU64s.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-return-TwoU8s.rs (renamed from src/test/ui/extern/extern-return-TwoU8s.rs)0
-rw-r--r--src/test/ui/abi/foreign/auxiliary/foreign_lib.rs (renamed from src/test/ui/foreign/auxiliary/foreign_lib.rs)0
-rw-r--r--src/test/ui/abi/foreign/foreign-call-no-runtime.rs (renamed from src/test/ui/foreign/foreign-call-no-runtime.rs)0
-rw-r--r--src/test/ui/abi/foreign/foreign-dupe.rs (renamed from src/test/ui/foreign/foreign-dupe.rs)0
-rw-r--r--src/test/ui/abi/foreign/foreign-fn-with-byval.rs (renamed from src/test/ui/foreign/foreign-fn-with-byval.rs)0
-rw-r--r--src/test/ui/abi/foreign/foreign-no-abi.rs (renamed from src/test/ui/foreign/foreign-no-abi.rs)0
-rw-r--r--src/test/ui/abi/invoke-external-foreign.rs (renamed from src/test/ui/invoke-external-foreign.rs)0
-rw-r--r--src/test/ui/abi/lib-defaults.rs (renamed from src/test/ui/lib-defaults.rs)0
-rw-r--r--src/test/ui/abi/macros/macros-in-extern.rs (renamed from src/test/ui/macros/macros-in-extern.rs)0
-rw-r--r--src/test/ui/abi/macros/macros-in-extern.stderr (renamed from src/test/ui/macros/macros-in-extern.stderr)0
-rw-r--r--src/test/ui/abi/mir/mir_codegen_calls_variadic.rs (renamed from src/test/ui/mir/mir_codegen_calls_variadic.rs)0
-rw-r--r--src/test/ui/abi/numbers-arithmetic/i128-ffi.rs (renamed from src/test/ui/numbers-arithmetic/i128-ffi.rs)0
-rw-r--r--src/test/ui/abi/proc-macro/auxiliary/test-macros.rs112
-rw-r--r--src/test/ui/abi/proc-macro/macros-in-extern.rs (renamed from src/test/ui/proc-macro/macros-in-extern.rs)0
-rw-r--r--src/test/ui/abi/proc-macro/macros-in-extern.stderr (renamed from src/test/ui/proc-macro/macros-in-extern.stderr)0
-rw-r--r--src/test/ui/abi/segfault-no-out-of-stack.rs (renamed from src/test/ui/segfault-no-out-of-stack.rs)0
-rw-r--r--src/test/ui/abi/stack-probes-lto.rs (renamed from src/test/ui/stack-probes-lto.rs)0
-rw-r--r--src/test/ui/abi/stack-probes.rs (renamed from src/test/ui/stack-probes.rs)0
-rw-r--r--src/test/ui/abi/statics/static-mut-foreign.rs (renamed from src/test/ui/statics/static-mut-foreign.rs)0
-rw-r--r--src/test/ui/abi/struct-enums/struct-return.rs (renamed from src/test/ui/structs-enums/struct-return.rs)0
-rw-r--r--src/test/ui/abi/union/union-c-interop.rs (renamed from src/test/ui/union/union-c-interop.rs)0
-rw-r--r--src/test/ui/abi/variadic-ffi.rs (renamed from src/test/ui/variadic-ffi.rs)0
53 files changed, 112 insertions, 0 deletions
diff --git a/src/test/ui/abi-sysv64-arg-passing.rs b/src/test/ui/abi/abi-sysv64-arg-passing.rs
index d40006eb9b6..d40006eb9b6 100644
--- a/src/test/ui/abi-sysv64-arg-passing.rs
+++ b/src/test/ui/abi/abi-sysv64-arg-passing.rs
diff --git a/src/test/ui/abi-sysv64-register-usage.rs b/src/test/ui/abi/abi-sysv64-register-usage.rs
index 0c7e2d906b7..0c7e2d906b7 100644
--- a/src/test/ui/abi-sysv64-register-usage.rs
+++ b/src/test/ui/abi/abi-sysv64-register-usage.rs
diff --git a/src/test/ui/abort-on-c-abi.rs b/src/test/ui/abi/abort-on-c-abi.rs
index cd7dd1b6a45..cd7dd1b6a45 100644
--- a/src/test/ui/abort-on-c-abi.rs
+++ b/src/test/ui/abi/abort-on-c-abi.rs
diff --git a/src/test/ui/anon-extern-mod.rs b/src/test/ui/abi/anon-extern-mod.rs
index 37a67876c91..37a67876c91 100644
--- a/src/test/ui/anon-extern-mod.rs
+++ b/src/test/ui/abi/anon-extern-mod.rs
diff --git a/src/test/ui/auxiliary/anon-extern-mod-cross-crate-1.rs b/src/test/ui/abi/auxiliary/anon-extern-mod-cross-crate-1.rs
index 948b5e688eb..948b5e688eb 100644
--- a/src/test/ui/auxiliary/anon-extern-mod-cross-crate-1.rs
+++ b/src/test/ui/abi/auxiliary/anon-extern-mod-cross-crate-1.rs
diff --git a/src/test/ui/auxiliary/foreign_lib.rs b/src/test/ui/abi/auxiliary/foreign_lib.rs
index de6b0e2118a..de6b0e2118a 100644
--- a/src/test/ui/auxiliary/foreign_lib.rs
+++ b/src/test/ui/abi/auxiliary/foreign_lib.rs
diff --git a/src/test/ui/c-stack-as-value.rs b/src/test/ui/abi/c-stack-as-value.rs
index 7595b76fb3f..7595b76fb3f 100644
--- a/src/test/ui/c-stack-as-value.rs
+++ b/src/test/ui/abi/c-stack-as-value.rs
diff --git a/src/test/ui/cabi-int-widening.rs b/src/test/ui/abi/cabi-int-widening.rs
index 240eaebf3d6..240eaebf3d6 100644
--- a/src/test/ui/cabi-int-widening.rs
+++ b/src/test/ui/abi/cabi-int-widening.rs
diff --git a/src/test/ui/consts/auxiliary/anon-extern-mod-cross-crate-1.rs b/src/test/ui/abi/consts/auxiliary/anon-extern-mod-cross-crate-1.rs
index 948b5e688eb..948b5e688eb 100644
--- a/src/test/ui/consts/auxiliary/anon-extern-mod-cross-crate-1.rs
+++ b/src/test/ui/abi/consts/auxiliary/anon-extern-mod-cross-crate-1.rs
diff --git a/src/test/ui/cross-crate/anon-extern-mod-cross-crate-2.rs b/src/test/ui/abi/cross-crate/anon-extern-mod-cross-crate-2.rs
index 77168be5374..77168be5374 100644
--- a/src/test/ui/cross-crate/anon-extern-mod-cross-crate-2.rs
+++ b/src/test/ui/abi/cross-crate/anon-extern-mod-cross-crate-2.rs
diff --git a/src/test/ui/cross-crate/auxiliary/anon-extern-mod-cross-crate-1.rs b/src/test/ui/abi/cross-crate/auxiliary/anon-extern-mod-cross-crate-1.rs
index 948b5e688eb..948b5e688eb 100644
--- a/src/test/ui/cross-crate/auxiliary/anon-extern-mod-cross-crate-1.rs
+++ b/src/test/ui/abi/cross-crate/auxiliary/anon-extern-mod-cross-crate-1.rs
diff --git a/src/test/ui/duplicated-external-mods.rs b/src/test/ui/abi/duplicated-external-mods.rs
index 05a279a3014..05a279a3014 100644
--- a/src/test/ui/duplicated-external-mods.rs
+++ b/src/test/ui/abi/duplicated-external-mods.rs
diff --git a/src/test/ui/extern/auxiliary/extern-crosscrate-source.rs b/src/test/ui/abi/extern/auxiliary/extern-crosscrate-source.rs
index d4568d38e25..d4568d38e25 100644
--- a/src/test/ui/extern/auxiliary/extern-crosscrate-source.rs
+++ b/src/test/ui/abi/extern/auxiliary/extern-crosscrate-source.rs
diff --git a/src/test/ui/extern/extern-call-deep.rs b/src/test/ui/abi/extern/extern-call-deep.rs
index 81f884dada9..81f884dada9 100644
--- a/src/test/ui/extern/extern-call-deep.rs
+++ b/src/test/ui/abi/extern/extern-call-deep.rs
diff --git a/src/test/ui/extern/extern-call-deep2.rs b/src/test/ui/abi/extern/extern-call-deep2.rs
index b31489b1e10..b31489b1e10 100644
--- a/src/test/ui/extern/extern-call-deep2.rs
+++ b/src/test/ui/abi/extern/extern-call-deep2.rs
diff --git a/src/test/ui/extern/extern-call-direct.rs b/src/test/ui/abi/extern/extern-call-direct.rs
index 72041764215..72041764215 100644
--- a/src/test/ui/extern/extern-call-direct.rs
+++ b/src/test/ui/abi/extern/extern-call-direct.rs
diff --git a/src/test/ui/extern/extern-call-indirect.rs b/src/test/ui/abi/extern/extern-call-indirect.rs
index 158b54e4b8c..158b54e4b8c 100644
--- a/src/test/ui/extern/extern-call-indirect.rs
+++ b/src/test/ui/abi/extern/extern-call-indirect.rs
diff --git a/src/test/ui/extern/extern-call-scrub.rs b/src/test/ui/abi/extern/extern-call-scrub.rs
index a7b1065c9e1..a7b1065c9e1 100644
--- a/src/test/ui/extern/extern-call-scrub.rs
+++ b/src/test/ui/abi/extern/extern-call-scrub.rs
diff --git a/src/test/ui/extern/extern-crosscrate.rs b/src/test/ui/abi/extern/extern-crosscrate.rs
index 123ce20ca26..123ce20ca26 100644
--- a/src/test/ui/extern/extern-crosscrate.rs
+++ b/src/test/ui/abi/extern/extern-crosscrate.rs
diff --git a/src/test/ui/extern/extern-pass-TwoU16s.rs b/src/test/ui/abi/extern/extern-pass-TwoU16s.rs
index 285bce2e19c..285bce2e19c 100644
--- a/src/test/ui/extern/extern-pass-TwoU16s.rs
+++ b/src/test/ui/abi/extern/extern-pass-TwoU16s.rs
diff --git a/src/test/ui/extern/extern-pass-TwoU32s.rs b/src/test/ui/abi/extern/extern-pass-TwoU32s.rs
index fb18aa8d22f..fb18aa8d22f 100644
--- a/src/test/ui/extern/extern-pass-TwoU32s.rs
+++ b/src/test/ui/abi/extern/extern-pass-TwoU32s.rs
diff --git a/src/test/ui/extern/extern-pass-TwoU64s.rs b/src/test/ui/abi/extern/extern-pass-TwoU64s.rs
index 419648263aa..419648263aa 100644
--- a/src/test/ui/extern/extern-pass-TwoU64s.rs
+++ b/src/test/ui/abi/extern/extern-pass-TwoU64s.rs
diff --git a/src/test/ui/extern/extern-pass-TwoU8s.rs b/src/test/ui/abi/extern/extern-pass-TwoU8s.rs
index 53a6a0f29f8..53a6a0f29f8 100644
--- a/src/test/ui/extern/extern-pass-TwoU8s.rs
+++ b/src/test/ui/abi/extern/extern-pass-TwoU8s.rs
diff --git a/src/test/ui/extern/extern-pass-char.rs b/src/test/ui/abi/extern/extern-pass-char.rs
index 22f841b4552..22f841b4552 100644
--- a/src/test/ui/extern/extern-pass-char.rs
+++ b/src/test/ui/abi/extern/extern-pass-char.rs
diff --git a/src/test/ui/extern/extern-pass-double.rs b/src/test/ui/abi/extern/extern-pass-double.rs
index dbd0a2dfa48..dbd0a2dfa48 100644
--- a/src/test/ui/extern/extern-pass-double.rs
+++ b/src/test/ui/abi/extern/extern-pass-double.rs
diff --git a/src/test/ui/extern/extern-pass-empty.rs b/src/test/ui/abi/extern/extern-pass-empty.rs
index 07099a24204..07099a24204 100644
--- a/src/test/ui/extern/extern-pass-empty.rs
+++ b/src/test/ui/abi/extern/extern-pass-empty.rs
diff --git a/src/test/ui/extern/extern-pass-u32.rs b/src/test/ui/abi/extern/extern-pass-u32.rs
index f2efdb7d366..f2efdb7d366 100644
--- a/src/test/ui/extern/extern-pass-u32.rs
+++ b/src/test/ui/abi/extern/extern-pass-u32.rs
diff --git a/src/test/ui/extern/extern-pass-u64.rs b/src/test/ui/abi/extern/extern-pass-u64.rs
index 975446d430c..975446d430c 100644
--- a/src/test/ui/extern/extern-pass-u64.rs
+++ b/src/test/ui/abi/extern/extern-pass-u64.rs
diff --git a/src/test/ui/extern/extern-return-TwoU16s.rs b/src/test/ui/abi/extern/extern-return-TwoU16s.rs
index dd884ee77fe..dd884ee77fe 100644
--- a/src/test/ui/extern/extern-return-TwoU16s.rs
+++ b/src/test/ui/abi/extern/extern-return-TwoU16s.rs
diff --git a/src/test/ui/extern/extern-return-TwoU32s.rs b/src/test/ui/abi/extern/extern-return-TwoU32s.rs
index d6aaf5c9eaf..d6aaf5c9eaf 100644
--- a/src/test/ui/extern/extern-return-TwoU32s.rs
+++ b/src/test/ui/abi/extern/extern-return-TwoU32s.rs
diff --git a/src/test/ui/extern/extern-return-TwoU64s.rs b/src/test/ui/abi/extern/extern-return-TwoU64s.rs
index c5e4ebadc18..c5e4ebadc18 100644
--- a/src/test/ui/extern/extern-return-TwoU64s.rs
+++ b/src/test/ui/abi/extern/extern-return-TwoU64s.rs
diff --git a/src/test/ui/extern/extern-return-TwoU8s.rs b/src/test/ui/abi/extern/extern-return-TwoU8s.rs
index a7cd21b2073..a7cd21b2073 100644
--- a/src/test/ui/extern/extern-return-TwoU8s.rs
+++ b/src/test/ui/abi/extern/extern-return-TwoU8s.rs
diff --git a/src/test/ui/foreign/auxiliary/foreign_lib.rs b/src/test/ui/abi/foreign/auxiliary/foreign_lib.rs
index de6b0e2118a..de6b0e2118a 100644
--- a/src/test/ui/foreign/auxiliary/foreign_lib.rs
+++ b/src/test/ui/abi/foreign/auxiliary/foreign_lib.rs
diff --git a/src/test/ui/foreign/foreign-call-no-runtime.rs b/src/test/ui/abi/foreign/foreign-call-no-runtime.rs
index c6afa07ad05..c6afa07ad05 100644
--- a/src/test/ui/foreign/foreign-call-no-runtime.rs
+++ b/src/test/ui/abi/foreign/foreign-call-no-runtime.rs
diff --git a/src/test/ui/foreign/foreign-dupe.rs b/src/test/ui/abi/foreign/foreign-dupe.rs
index 3c9f0f583d4..3c9f0f583d4 100644
--- a/src/test/ui/foreign/foreign-dupe.rs
+++ b/src/test/ui/abi/foreign/foreign-dupe.rs
diff --git a/src/test/ui/foreign/foreign-fn-with-byval.rs b/src/test/ui/abi/foreign/foreign-fn-with-byval.rs
index 3a35599aa57..3a35599aa57 100644
--- a/src/test/ui/foreign/foreign-fn-with-byval.rs
+++ b/src/test/ui/abi/foreign/foreign-fn-with-byval.rs
diff --git a/src/test/ui/foreign/foreign-no-abi.rs b/src/test/ui/abi/foreign/foreign-no-abi.rs
index 2f33fb47656..2f33fb47656 100644
--- a/src/test/ui/foreign/foreign-no-abi.rs
+++ b/src/test/ui/abi/foreign/foreign-no-abi.rs
diff --git a/src/test/ui/invoke-external-foreign.rs b/src/test/ui/abi/invoke-external-foreign.rs
index dbd2b4ad865..dbd2b4ad865 100644
--- a/src/test/ui/invoke-external-foreign.rs
+++ b/src/test/ui/abi/invoke-external-foreign.rs
diff --git a/src/test/ui/lib-defaults.rs b/src/test/ui/abi/lib-defaults.rs
index cd0b0bb2321..cd0b0bb2321 100644
--- a/src/test/ui/lib-defaults.rs
+++ b/src/test/ui/abi/lib-defaults.rs
diff --git a/src/test/ui/macros/macros-in-extern.rs b/src/test/ui/abi/macros/macros-in-extern.rs
index bba8b15cdb0..bba8b15cdb0 100644
--- a/src/test/ui/macros/macros-in-extern.rs
+++ b/src/test/ui/abi/macros/macros-in-extern.rs
diff --git a/src/test/ui/macros/macros-in-extern.stderr b/src/test/ui/abi/macros/macros-in-extern.stderr
index 6ee33f4ab61..6ee33f4ab61 100644
--- a/src/test/ui/macros/macros-in-extern.stderr
+++ b/src/test/ui/abi/macros/macros-in-extern.stderr
diff --git a/src/test/ui/mir/mir_codegen_calls_variadic.rs b/src/test/ui/abi/mir/mir_codegen_calls_variadic.rs
index dc9fee03b77..dc9fee03b77 100644
--- a/src/test/ui/mir/mir_codegen_calls_variadic.rs
+++ b/src/test/ui/abi/mir/mir_codegen_calls_variadic.rs
diff --git a/src/test/ui/numbers-arithmetic/i128-ffi.rs b/src/test/ui/abi/numbers-arithmetic/i128-ffi.rs
index 19edf9779f3..19edf9779f3 100644
--- a/src/test/ui/numbers-arithmetic/i128-ffi.rs
+++ b/src/test/ui/abi/numbers-arithmetic/i128-ffi.rs
diff --git a/src/test/ui/abi/proc-macro/auxiliary/test-macros.rs b/src/test/ui/abi/proc-macro/auxiliary/test-macros.rs
new file mode 100644
index 00000000000..27efa44f980
--- /dev/null
+++ b/src/test/ui/abi/proc-macro/auxiliary/test-macros.rs
@@ -0,0 +1,112 @@
+// force-host
+// no-prefer-dynamic
+
+// Proc macros commonly used by tests.
+// `panic`/`print` -> `panic_bang`/`print_bang` to avoid conflicts with standard macros.
+
+#![crate_type = "proc-macro"]
+
+extern crate proc_macro;
+use proc_macro::TokenStream;
+
+// Macro that return empty token stream.
+
+#[proc_macro]
+pub fn empty(_: TokenStream) -> TokenStream {
+    TokenStream::new()
+}
+
+#[proc_macro_attribute]
+pub fn empty_attr(_: TokenStream, _: TokenStream) -> TokenStream {
+    TokenStream::new()
+}
+
+#[proc_macro_derive(Empty, attributes(empty_helper))]
+pub fn empty_derive(_: TokenStream) -> TokenStream {
+    TokenStream::new()
+}
+
+// Macro that panics.
+
+#[proc_macro]
+pub fn panic_bang(_: TokenStream) -> TokenStream {
+    panic!("panic-bang");
+}
+
+#[proc_macro_attribute]
+pub fn panic_attr(_: TokenStream, _: TokenStream) -> TokenStream {
+    panic!("panic-attr");
+}
+
+#[proc_macro_derive(Panic, attributes(panic_helper))]
+pub fn panic_derive(_: TokenStream) -> TokenStream {
+    panic!("panic-derive");
+}
+
+// Macros that return the input stream.
+
+#[proc_macro]
+pub fn identity(input: TokenStream) -> TokenStream {
+    input
+}
+
+#[proc_macro_attribute]
+pub fn identity_attr(_: TokenStream, input: TokenStream) -> TokenStream {
+    input
+}
+
+#[proc_macro_derive(Identity, attributes(identity_helper))]
+pub fn identity_derive(input: TokenStream) -> TokenStream {
+    input
+}
+
+// Macros that iterate and re-collect the input stream.
+
+#[proc_macro]
+pub fn recollect(input: TokenStream) -> TokenStream {
+    input.into_iter().collect()
+}
+
+#[proc_macro_attribute]
+pub fn recollect_attr(_: TokenStream, input: TokenStream) -> TokenStream {
+    input.into_iter().collect()
+}
+
+#[proc_macro_derive(Recollect, attributes(recollect_helper))]
+pub fn recollect_derive(input: TokenStream) -> TokenStream {
+    input.into_iter().collect()
+}
+
+// Macros that print their input in the original and re-collected forms (if they differ).
+
+fn print_helper(input: TokenStream, kind: &str) -> TokenStream {
+    let input_display = format!("{}", input);
+    let input_debug = format!("{:#?}", input);
+    let recollected = input.into_iter().collect();
+    let recollected_display = format!("{}", recollected);
+    let recollected_debug = format!("{:#?}", recollected);
+    println!("PRINT-{} INPUT (DISPLAY): {}", kind, input_display);
+    if recollected_display != input_display {
+        println!("PRINT-{} RE-COLLECTED (DISPLAY): {}", kind, recollected_display);
+    }
+    println!("PRINT-{} INPUT (DEBUG): {}", kind, input_debug);
+    if recollected_debug != input_debug {
+        println!("PRINT-{} RE-COLLECTED (DEBUG): {}", kind, recollected_debug);
+    }
+    recollected
+}
+
+#[proc_macro]
+pub fn print_bang(input: TokenStream) -> TokenStream {
+    print_helper(input, "BANG")
+}
+
+#[proc_macro_attribute]
+pub fn print_attr(_: TokenStream, input: TokenStream) -> TokenStream {
+    print_helper(input, "ATTR")
+}
+
+#[proc_macro_derive(Print, attributes(print_helper))]
+pub fn print_derive(input: TokenStream) -> TokenStream {
+    print_helper(input, "DERIVE")
+}
diff --git a/src/test/ui/proc-macro/macros-in-extern.rs b/src/test/ui/abi/proc-macro/macros-in-extern.rs
index 0477b5c48ec..0477b5c48ec 100644
--- a/src/test/ui/proc-macro/macros-in-extern.rs
+++ b/src/test/ui/abi/proc-macro/macros-in-extern.rs
diff --git a/src/test/ui/proc-macro/macros-in-extern.stderr b/src/test/ui/abi/proc-macro/macros-in-extern.stderr
index 6049c2aa448..6049c2aa448 100644
--- a/src/test/ui/proc-macro/macros-in-extern.stderr
+++ b/src/test/ui/abi/proc-macro/macros-in-extern.stderr
diff --git a/src/test/ui/segfault-no-out-of-stack.rs b/src/test/ui/abi/segfault-no-out-of-stack.rs
index 626de4ed5b6..626de4ed5b6 100644
--- a/src/test/ui/segfault-no-out-of-stack.rs
+++ b/src/test/ui/abi/segfault-no-out-of-stack.rs
diff --git a/src/test/ui/stack-probes-lto.rs b/src/test/ui/abi/stack-probes-lto.rs
index 9018ff4bfc2..9018ff4bfc2 100644
--- a/src/test/ui/stack-probes-lto.rs
+++ b/src/test/ui/abi/stack-probes-lto.rs
diff --git a/src/test/ui/stack-probes.rs b/src/test/ui/abi/stack-probes.rs
index 1ab1d6df66d..1ab1d6df66d 100644
--- a/src/test/ui/stack-probes.rs
+++ b/src/test/ui/abi/stack-probes.rs
diff --git a/src/test/ui/statics/static-mut-foreign.rs b/src/test/ui/abi/statics/static-mut-foreign.rs
index 5d6fa416b98..5d6fa416b98 100644
--- a/src/test/ui/statics/static-mut-foreign.rs
+++ b/src/test/ui/abi/statics/static-mut-foreign.rs
diff --git a/src/test/ui/structs-enums/struct-return.rs b/src/test/ui/abi/struct-enums/struct-return.rs
index 5930fc4acbb..5930fc4acbb 100644
--- a/src/test/ui/structs-enums/struct-return.rs
+++ b/src/test/ui/abi/struct-enums/struct-return.rs
diff --git a/src/test/ui/union/union-c-interop.rs b/src/test/ui/abi/union/union-c-interop.rs
index 00f04d5b7ff..00f04d5b7ff 100644
--- a/src/test/ui/union/union-c-interop.rs
+++ b/src/test/ui/abi/union/union-c-interop.rs
diff --git a/src/test/ui/variadic-ffi.rs b/src/test/ui/abi/variadic-ffi.rs
index 3232a11d726..3232a11d726 100644
--- a/src/test/ui/variadic-ffi.rs
+++ b/src/test/ui/abi/variadic-ffi.rs