summaryrefslogtreecommitdiffstats
path: root/tests/run-make/compiler-rt-works-on-mingw
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run-make/compiler-rt-works-on-mingw')
-rw-r--r--tests/run-make/compiler-rt-works-on-mingw/Makefile9
-rw-r--r--tests/run-make/compiler-rt-works-on-mingw/foo.cpp4
-rw-r--r--tests/run-make/compiler-rt-works-on-mingw/foo.rs10
3 files changed, 23 insertions, 0 deletions
diff --git a/tests/run-make/compiler-rt-works-on-mingw/Makefile b/tests/run-make/compiler-rt-works-on-mingw/Makefile
new file mode 100644
index 000000000..74917570a
--- /dev/null
+++ b/tests/run-make/compiler-rt-works-on-mingw/Makefile
@@ -0,0 +1,9 @@
+include ../tools.mk
+
+# only-windows-gnu
+
+all:
+ $(CXX) foo.cpp -c -o $(TMPDIR)/foo.o
+ $(AR) crus $(TMPDIR)/libfoo.a $(TMPDIR)/foo.o
+ $(RUSTC) foo.rs -lfoo -lstdc++
+ $(call RUN,foo)
diff --git a/tests/run-make/compiler-rt-works-on-mingw/foo.cpp b/tests/run-make/compiler-rt-works-on-mingw/foo.cpp
new file mode 100644
index 000000000..4c2fb9cdb
--- /dev/null
+++ b/tests/run-make/compiler-rt-works-on-mingw/foo.cpp
@@ -0,0 +1,4 @@
+extern "C" void foo() {
+ int *a = new int(3);
+ delete a;
+}
diff --git a/tests/run-make/compiler-rt-works-on-mingw/foo.rs b/tests/run-make/compiler-rt-works-on-mingw/foo.rs
new file mode 100644
index 000000000..7fdb81588
--- /dev/null
+++ b/tests/run-make/compiler-rt-works-on-mingw/foo.rs
@@ -0,0 +1,10 @@
+extern "C" {
+ fn foo();
+}
+
+pub fn main() {
+ unsafe {
+ foo();
+ }
+ assert_eq!(7f32.powi(3), 343f32);
+}