2018-08-30 14:18:55 +02:00
|
|
|
// run-pass
|
2014-02-14 17:23:01 +13:00
|
|
|
// Ensure that declarations and types which use `extern fn` both have the same
|
|
|
|
// ABI (#9309).
|
|
|
|
|
2015-03-22 13:13:15 -07:00
|
|
|
// pretty-expanded FIXME #23616
|
2015-12-14 15:40:43 -08:00
|
|
|
// aux-build:fn-abi.rs
|
|
|
|
|
|
|
|
extern crate fn_abi;
|
2015-03-22 13:13:15 -07:00
|
|
|
|
2020-09-01 17:12:52 -04:00
|
|
|
extern "C" {
|
2015-12-14 15:40:43 -08:00
|
|
|
fn foo();
|
2014-02-14 17:23:01 +13:00
|
|
|
}
|
|
|
|
|
|
|
|
pub fn main() {
|
2015-12-14 15:40:43 -08:00
|
|
|
// Will only type check if the type of _p and the decl of foo use the
|
|
|
|
// same ABI
|
2020-09-01 17:12:52 -04:00
|
|
|
let _p: unsafe extern "C" fn() = foo;
|
2014-02-14 17:23:01 +13:00
|
|
|
}
|