about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRobin Kruppe <robin.kruppe@gmail.com>2018-02-15 00:06:14 +0100
committerRobin Kruppe <robin.kruppe@gmail.com>2018-02-15 17:47:53 +0100
commit1f0e1a043959461afd061be7ff92362492b2c85d (patch)
tree0c29ec7c34971063550adc542c70b437198023a7
parent1670a532dd769763f1d6ad9e5d624ec31361a098 (diff)
downloadrust-1f0e1a043959461afd061be7ff92362492b2c85d.tar.gz
rust-1f0e1a043959461afd061be7ff92362492b2c85d.zip
Convert compile-fail/lint-ctypes.rs to ui test
-rw-r--r--src/test/ui/lint-ctypes.rs (renamed from src/test/compile-fail/lint-ctypes.rs)0
-rw-r--r--src/test/ui/lint-ctypes.stderr128
2 files changed, 128 insertions, 0 deletions
diff --git a/src/test/compile-fail/lint-ctypes.rs b/src/test/ui/lint-ctypes.rs
index c22239dee0a..c22239dee0a 100644
--- a/src/test/compile-fail/lint-ctypes.rs
+++ b/src/test/ui/lint-ctypes.rs
diff --git a/src/test/ui/lint-ctypes.stderr b/src/test/ui/lint-ctypes.stderr
new file mode 100644
index 00000000000..21aadde8ac8
--- /dev/null
+++ b/src/test/ui/lint-ctypes.stderr
@@ -0,0 +1,128 @@
+error: found struct without foreign-function-safe representation annotation in foreign module, consider adding a #[repr(C)] attribute to the type
+  --> $DIR/lint-ctypes.rs:54:28
+   |
+54 |     pub fn ptr_type1(size: *const Foo); //~ ERROR: found struct without
+   |                            ^^^^^^^^^^
+   |
+note: lint level defined here
+  --> $DIR/lint-ctypes.rs:11:9
+   |
+11 | #![deny(improper_ctypes)]
+   |         ^^^^^^^^^^^^^^^
+
+error: found struct without foreign-function-safe representation annotation in foreign module, consider adding a #[repr(C)] attribute to the type
+  --> $DIR/lint-ctypes.rs:55:28
+   |
+55 |     pub fn ptr_type2(size: *const Foo); //~ ERROR: found struct without
+   |                            ^^^^^^^^^^
+
+error: found Rust slice type in foreign module, consider using a raw pointer instead
+  --> $DIR/lint-ctypes.rs:56:26
+   |
+56 |     pub fn slice_type(p: &[u32]); //~ ERROR: found Rust slice type
+   |                          ^^^^^^
+
+error: found Rust type `str` in foreign module; consider using a `*const libc::c_char`
+  --> $DIR/lint-ctypes.rs:57:24
+   |
+57 |     pub fn str_type(p: &str); //~ ERROR: found Rust type
+   |                        ^^^^
+
+error: found struct without foreign-function-safe representation annotation in foreign module, consider adding a #[repr(C)] attribute to the type
+  --> $DIR/lint-ctypes.rs:58:24
+   |
+58 |     pub fn box_type(p: Box<u32>); //~ ERROR found struct without
+   |                        ^^^^^^^^
+
+error: found Rust type `char` in foreign module, while `u32` or `libc::wchar_t` should be used
+  --> $DIR/lint-ctypes.rs:59:25
+   |
+59 |     pub fn char_type(p: char); //~ ERROR found Rust type
+   |                         ^^^^
+
+error: found Rust type `i128` in foreign module, but 128-bit integers don't currently have a known stable ABI
+  --> $DIR/lint-ctypes.rs:60:25
+   |
+60 |     pub fn i128_type(p: i128); //~ ERROR found Rust type
+   |                         ^^^^
+
+error: found Rust type `u128` in foreign module, but 128-bit integers don't currently have a known stable ABI
+  --> $DIR/lint-ctypes.rs:61:25
+   |
+61 |     pub fn u128_type(p: u128); //~ ERROR found Rust type
+   |                         ^^^^
+
+error: found Rust trait type in foreign module, consider using a raw pointer instead
+  --> $DIR/lint-ctypes.rs:62:26
+   |
+62 |     pub fn trait_type(p: &Clone); //~ ERROR found Rust trait type
+   |                          ^^^^^^
+
+error: found Rust tuple type in foreign module; consider using a struct instead
+  --> $DIR/lint-ctypes.rs:63:26
+   |
+63 |     pub fn tuple_type(p: (i32, i32)); //~ ERROR found Rust tuple type
+   |                          ^^^^^^^^^^
+
+error: found Rust tuple type in foreign module; consider using a struct instead
+  --> $DIR/lint-ctypes.rs:64:27
+   |
+64 |     pub fn tuple_type2(p: I32Pair); //~ ERROR found Rust tuple type
+   |                           ^^^^^^^
+
+error: found zero-size struct in foreign module, consider adding a member to this struct
+  --> $DIR/lint-ctypes.rs:65:25
+   |
+65 |     pub fn zero_size(p: ZeroSize); //~ ERROR found zero-size struct
+   |                         ^^^^^^^^
+
+error: found zero-sized type composed only of phantom-data in a foreign-function.
+  --> $DIR/lint-ctypes.rs:66:33
+   |
+66 |     pub fn zero_size_phantom(p: ZeroSizeWithPhantomData); //~ ERROR found zero-sized type
+   |                                 ^^^^^^^^^^^^^^^^^^^^^^^
+
+error: found zero-sized type composed only of phantom-data in a foreign-function.
+  --> $DIR/lint-ctypes.rs:68:12
+   |
+68 |         -> ::std::marker::PhantomData<bool>; //~ ERROR: found zero-sized type
+   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: found function pointer with Rust calling convention in foreign module; consider using an `extern` function pointer
+  --> $DIR/lint-ctypes.rs:69:23
+   |
+69 |     pub fn fn_type(p: RustFn); //~ ERROR found function pointer with Rust
+   |                       ^^^^^^
+
+error: found function pointer with Rust calling convention in foreign module; consider using an `extern` function pointer
+  --> $DIR/lint-ctypes.rs:70:24
+   |
+70 |     pub fn fn_type2(p: fn()); //~ ERROR found function pointer with Rust
+   |                        ^^^^
+
+error: found struct without foreign-function-safe representation annotation in foreign module, consider adding a #[repr(C)] attribute to the type
+  --> $DIR/lint-ctypes.rs:71:28
+   |
+71 |     pub fn fn_contained(p: RustBadRet); //~ ERROR: found struct without
+   |                            ^^^^^^^^^^
+
+error: found non-foreign-function-safe member in struct marked #[repr(C)]: found Rust type `i128` in foreign module, but 128-bit integers don't currently have a known stable ABI
+  --> $DIR/lint-ctypes.rs:72:32
+   |
+72 |     pub fn transparent_i128(p: TransparentI128); //~ ERROR: found Rust type `i128`
+   |                                ^^^^^^^^^^^^^^^
+
+error: found non-foreign-function-safe member in struct marked #[repr(C)]: found Rust type `str` in foreign module; consider using a `*const libc::c_char`
+  --> $DIR/lint-ctypes.rs:73:31
+   |
+73 |     pub fn transparent_str(p: TransparentStr); //~ ERROR: found Rust type `str`
+   |                               ^^^^^^^^^^^^^^
+
+error: found non-foreign-function-safe member in struct marked #[repr(C)]: found struct without foreign-function-safe representation annotation in foreign module, consider adding a #[repr(C)] attribute to the type
+  --> $DIR/lint-ctypes.rs:74:30
+   |
+74 |     pub fn transparent_fn(p: TransparentBadFn); //~ ERROR: found struct without
+   |                              ^^^^^^^^^^^^^^^^
+
+error: aborting due to 20 previous errors
+